REBUILD SEARCH INDEX

Rebuilds a search index for DSE Search.

Rebuilds the search index. Reconstructs the index after changes to the index schema, such as:
  • Adding or removing fields
  • Adding a copy field
  • Changing field settings
Queries using the solr_query option may return no results, partial results, or old data while the index is rebuilding. You can verify an index's status by using the dsetool core_indexing_status command. See Verifying indexing status.
Note: Perform index reloads or rebuilds on each Datacenter (DC). It's only necessary to run the command on one node per DC. After modifying a search index schema or configuration, or uploading custom resources such as a synonym file, use RELOAD SEARCH INDEX to reload and activate the search index. By default, any uploaded resources are distributed across the cluster. For options to reload resources on the current node only, see Reloading the search index.
Restriction: Command available only on DSE Search nodes. Running search index management commands on large datasets can take longer than the CQLSH default timeout of 10 minutes. Increase the CQLSH client timeout as required.

Synopsis

REBUILD SEARCH INDEX ON [keyspace_name.]table_name
  [ WITH OPTIONS { deleteAll : ( true | false ) } ] ;
Table 1. Legend
Syntax conventions Description
UPPERCASE Literal keyword.
Lowercase Not literal.
Italics Variable value. Replace with a user-defined value.
[] Optional. Square brackets ( [] ) surround optional command arguments. Do not type the square brackets.
( ) Group. Parentheses ( ( ) ) identify a group to choose from. Do not type the parentheses.
| Or. A vertical bar ( | ) separates alternative elements. Type any one of the elements. Do not type the vertical bar.
... Repeatable. An ellipsis ( ... ) indicates that you can repeat the syntax element as often as required.
'Literal string' Single quotation ( ' ) marks must surround literal strings in CQL statements. Use single quotation marks to preserve upper case.
{ key : value } Map collection. Braces ( { } ) enclose map collections or key value pairs. A colon separates the key and the value.
<datatype1,datatype2> Set, list, map, or tuple. Angle brackets ( < > ) enclose data types in a set, list, map, or tuple. Separate the data types with a comma.
cql_statement; End CQL statement. A semicolon ( ; ) terminates all CQL statements.
[--] Separate the command line options from the command arguments with two hyphens ( -- ). This syntax is useful when arguments might be mistaken for command line options.
' <schema> ... </schema> ' Search CQL only: Single quotation marks ( ' ) surround an entire XML schema declaration.
@xml_entity='xml_entity_type' Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrConfig files.

OPTIONS

The request option configures the entire request to specify whether to delete the existing index:
deleteAll
  • true Completely replaces the existing index. Use when changes to the schema affect the way that data is physically stored, such as changes to the field type analyzer, a column data type, etc.
  • false (Default.) Keeps existing search index data. Reindexing happens in-place; search results will return partially incorrect results while the index is updating. Keep the current index (accepting reads) while you build the new one, then swap over to the new index after it's ready. Use when table columns are removed or added to the index.

EBNF

EBNF syntax:
rebuildSearchIndex  ::= 'REBUILD' 'SEARCH' 'INDEX'
                        'ON' tableName
                        ('WITH' 'OPTIONS' optionMap)?
tableName           ::= (keyspace '.')? table
optionMap           ::= '{' (key ':' value (',' key ':' value)*)? '}'
Railroad diagram:
Figure 1. rebuildSearchIndex
Image shows a railroad diagram for the REBUILD SEARCH INDEX search CQL command
Figure 2. tableName
Image shows a railroad diagram of tableName
Figure 3. optionMap
Image shows a railroad diagram of optionMap

Examples

The search index is rebuilt and reloaded for the wiki.solr keyspace and table.

REBUILD SEARCH INDEX ON wiki.solr WITH OPTIONS { deleteAll:true };
RELOAD SEARCH INDEX ON wiki.solr;