Dropping columns from the index
Remove a CQL column using the ALTER SEARCH INDEX SCHEMA field shortcut.
The field is removed based on the name that is defined in the schema.
-
Remove a CQL column from the index:
-
Remove a regular column:
ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP field intfield; ALTER TABLE wiki.solr DROP intfield int; -
Remove a tuple column from the index:
When dropping the base field name, drop the
TupleFieldand all the child fields:ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP field fieldname;To drop individual child fields:
ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP field "fieldname.field1"; -
Remove a field that contains an asterisk in the name:
To remove a field that contains an asterisk in the name, enclose the field name in double quotation marks:
ALTER SEARCH INDEX SCHEMA ON wiki,solr DROP field "fieldname*";Alternatively, use the long form of the command:
ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP fields.field[@name='fieldname*']; -
Remove a field that contains an incorrect XML path:
For example, assume a field was added with an incorrect XML path that is not nested inside the
<fields>tag:ALTER SEARCH INDEX SCHEMA ON wiki.solr ADD field[@name='fieldname', @type='StrField'];Example XML fragment showing that the new field is outside of the
<fields>tag:<fields> ... </fields> <field name="fieldname" type="StrField"/>If you use the short form of the
ALTER SEARCH INDEX SCHEMAcommand, the command returns an error because it is assumed that the field is nested inside of the<fields>tag in the XML:ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP field fieldname;InvalidRequest: Error from server: code=2200 [Invalid query] message= \ "The search index schema could not be updated because: \ Cannot drop resource element fields.field[@name='fieldname'] \ because it doesn't exist"To drop the field, use the long form of the
ALTER SEARCH INDEX SCHEMAcommand:ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP field[@name='fieldname']; -
Remove a dynamic field:
To remove a dynamic field, use the long form of the
ALTER SEARCH INDEX SCHEMAcommand because the field name always contains an asterisk:ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP fields.dynamicField[@name='fieldname*']; -
Remove a copy field:
To remove a copy field, use the long form of the `ALTER SEARCH INDEX SCHEMA`command because the source and destination fields must be specified:
ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP copyField[@source='sourcefieldname', @dest='destfieldname']; -
Remove associated copy fields and resolve dependencies:
If you attempt to remove a field that has an associated copy field, the
ALTER SEARCH INDEX SCHEMAcommand returns an invalid request error:ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP fields.dynamicField[@name='copyfieldname*'];InvalidRequest: Error from server: code=2200 [Invalid query] message= \ "The search index schema is not valid because: \ Can't load schema schema.xml: copyField dest :'copyfieldname*' \ is not an explicit field and doesn't match a dynamicField."To remove the field, remove all of the underlying child elements first and then remove the field.
-
-
Verify the pending changes:
DESCRIBE PENDING SEARCH INDEX SCHEMA ON [keyspace_name.]table_name; -
Activate the changes:
RELOAD SEARCH INDEX ON [keyspace_name.]table_name;Copies the pending schema over the active schema. New transactions, such as data inserted into the table, are processed using the active schema. The existing data is not effected by a schema change.
-
Rebuild the index:
REBUILD SEARCH INDEX ON [keyspace_name.]table_name;The
REBUILD SEARCH INDEXregenerates the index using existing data. Rebuilding is required when changing the way that data is indexed, such as changing the type of field or if a field is added to the index.