CREATE SEARCH INDEX

既存のテーブルに対して新しい検索インデックスを定義します。

既存のテーブルに対して新しい検索インデックスを定義します。検索インデックス・スキーマと構成を自動的に作成してから、インデックスを生成します。
制約事項: DSE Searchノードでのみ使用できるコマンドです。大きなデータセットに対して検索インデックスの管理コマンドを実行すると、CQLSHのデフォルトで指定された10分のタイムアウトよりも長くかかることがあります。必要に応じて、CQLSHクライアント・タイムアウトの値を引き上げてください。
重要: このコマンドは整合性レベルがQUORUMで実行されます。

構文

CREATE SEARCH INDEX [IF NOT EXISTS] ON [keyspace_name.]table_name
(WITH COLUMNS column_list { option : value } [, ...]
    | [AND] PROFILES profile_name [, profile_name, ...]
    | [AND] CONFIG { option:value [, ...] }
    | [AND] OPTIONS { option:value [,  ...] } )

CREATE SEARCH INDEX文にオプションが指定されていない場合、すべてのカラムでデフォルト値を使用してインデックスが作成されます。

表 1. 凡例
構文規則 説明
大文字 リテラル・キーワード。
小文字 リテラル以外。
イタリック体 変数値。ユーザー定義値と置き換えます。
[] 任意。角かっこ( [] )で任意指定のコマンド引数を囲みます。角かっこは入力しないでください。
( ) グループ。丸かっこ(( ))は、選択肢を含むグループを示します。丸かっこは入力しないでください。
| または。縦棒( | )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。
... 繰り返し可能。省略記号(...)は、構文要素を必要な回数だけ繰り返すことができることを示します。
'Literal string' 単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。
{ key : value } マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。
<datatype1,datatype2> セット、リスト、マップ、またはタプル。山かっこ(< >)で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型はコンマで区切ります。
cql_statement; CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。
[--] コマンドライン・オプションとコマンド引数は、2つのハイフン(--)で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。
' <schema> ...</schema> ' 検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。
@xml_entity='xml_entity_type' 検索CQLのみ:スキーマ・ファイルおよびsolrConfigファイル内のXML要素を上書きするための実体とリテラル値を示します。

EBNF

EBNF構文:
createSearchIndex ::= 'CREATE' 'SEARCH' 'INDEX' ('IF' 'NOT' 'EXISTS')?
                      'ON' tableName
                      ('WITH' indexOptions)?
tableName         ::= (keyspace '.')? table
indexOptions      ::= indexOption ('AND' indexOption)*
indexOption       ::= 'COLUMNS' columnList
                      | 'PROFILES' profileName (',' profileName)*
                      | 'CONFIG' optionMap
                      | 'OPTIONS' optionMap
columnList        ::= column (',' column)*
column            ::= (columnName | '*')('{' optionMap '}')?
optionMap         ::= '{' (optionName ':' optionValue (',' optionName ':'
                      optionValue)*)? '}'

レールロード・ダイアグラム:

図: createSearchIndex

この図はCREATE SEARCH INDEX検索CQLコマンドのレールロード・ダイアグラムを示しています

図: tableName

この図はtableNameのレールロード・ダイアグラムを示しています

図: indexOptions

この図はindexOptionsのレールロード・ダイアグラムを示しています

図: indexOption

この図はindexOptionのレールロード・ダイアグラムを示しています

図: columnList

この図はcolumnListのレールロード・ダイアグラムを示しています

図: column

この図はcolumnのレールロード・ダイアグラムを示しています

図: optionMap

この図はoptionMapのレールロード・ダイアグラムを示しています

COLUMNS

インデックスに含めるフィールドの定義、インデックス型の設定、ファセット検索用の非トークン化フィールドの作成を行います。
COLUMNS column_list { copyField : true | false }, 
column_list { docValues : true | false }, 
column_list { excluded : true | false }, 
注: このオプションが使用されている場合、インデックスを作成する必要があるPRIMARY KEYカラムを除き、リストされていないカラムはデフォルトでインデックスから除外されます。
column_list
カラム名のコンマ区切りリストを指定するか、すべてのカラムを選択するためにアスタリスク(*)を指定します。
copyField: (true | false)
StrField型の指定したカラムからコピーして新しいフィールドを作成するには、trueに設定します。元のフィールドのデータを新しいフィールドに複製します。検索とファセット化の両方で必要なカラムに使用します。

デフォルト値はfalseです。

docValues: ( true | false)
指定したカラムごとにフォワード・インデックスを作成します。TrieField、UUIDField、およびStrFieldを拡張するSolr型でのみ有効な設定です。ソートまたはグループ化(ファセット化)されたカラムで使用します。デフォルト値は、TrieField型とUUIDField型ではtrue、StrField型ではfalseです。

SOLR-7264により、Solrスキーマのブーリアン・フィールドでdocValuesをtrueに設定することはできません。ブーリアンdocValuesの回避策として、TrieIntFieldで0および1を使用します。

注: spaceSavingsプロファイルを使用すると、DocValuesの自動生成が無効になります。
excluded: (true | false)
trueの場合、リストされたカラムはインデックスから除外され、falseの場合、カラムはインデックスに含まれます。

COLUMNSオプションを使用する場合、インデックスに含めるカラムのexcludedをfalseに設定します。

PROFILES

領域節約オプションを適用し、最初の作成時のインデックス・サイズを最小化します。spaceSavingAll、または適用するプロファイルのコンマ区切りリストを指定します。
PROFILES profile_name [, profile_name, ...]
注: プロファイルは最初のインデックス生成にのみ適用されます。ALTER SEARCH INDEX SCHEMAコマンドには適用されません。
spaceSavingAll
すべてのプロファイルを適用します。
spaceSavingNoJoin
検索クエリーでテーブル全体の結合に必要な非表示のプライマリ・キーをインデックスから除外します。使用する場合、検索インデックス・クエリーでテーブル結合を使用できません。
spaceSavingNoTextfield
非トークン化文字列フィールドとしてテキスト・フィールドのインデックスを作成します。
spaceSavingSlowTriePrecision
トライ・フィールドprecisionStepを「0」に設定すると、領域を大幅に節約できますがクエリーの速度は低下します。

CONFIG

構成オプションは構成ファイル内の値をオーバーライドします。CONFIGオプション・マップでオプションを渡すには、次の構文を使用します。
CONFIG { shortcut_name:value [, shortcut_name:value, ...] }
shortcuts
構成要素の値へのショートカット。SETを使用します。
  • autoCommitTime:デフォルト値は10,000です。
  • defaultQueryField:フィールドの名前です。デフォルトは設定されていません。
    注: SETを使用して追加します。削除するには、DROPを使用します。
  • directoryFactory:directoryFactoryClassを除いて指定します。以下のオプションがあります。
    • StandardDirectoryFactory
    • EncryptedFSDirectoryFactory
  • filterCacheLowWaterMark:デフォルトは128です。
  • filterCacheHighWaterMark:デフォルトは256です。
  • mergeFactor:デフォルトは10です。
  • mergeMaxThreadCount:mergeMaxMergeCountを使用して構成する必要があります。デフォルトは設定されていません。
  • mergeMaxMergeCount:mergeMaxThreadCountを使用して構成する必要があります。デフォルトは設定されていません。
  • ramBufferSize:デフォルトは512です。
  • realtime:デフォルトはfalseです。

OPTIONS

要求オプションで要求全体を構成します。OPTIONSマップでオプションを渡すには、次の構文を使用します。
OPTIONS { option:value [, option:value, ...] }
要求オプションはブーリアン値です。
recovery
  • true - インデックスが破損していて検索コアで読み込むことができない場合、インデックスを削除し、再作成して復元します。deleteAllフラグは、deleteAllが具体的に設定されていない限り、復元フラグに基づいて設定されます。
  • false - 復元されません。デフォルト。
reindex
  • true - データのインデックスを再作成します。新しいインデックスの作成中に現在のインデックスを保持します(読み取りを受け入れる)。デフォルト。
  • false - データのインデックスは再作成されません。
lenient
  • true - SchemaGeneratorは、SpatialRecursivePrefixTreeFieldType(CQL PointType)型のフィールドを自動的に無視します。
  • false - SpatialRecursivePrefixTreeFieldType(CQL PointType)型のフィールドを無視しません。

wiki.solrキースペースとテーブル、および指定したオプションで検索インデックスを作成します。

検索インデックスが存在しない場合は作成する
CREATE SEARCH INDEX IF NOT EXISTS ON wiki.solr WITH COLUMNS id, body {excluded : false};
リアルタイム(RT)検索インデックスを作成するが、データのインデックスは再作成しない
CREATE SEARCH INDEX ON wiki.solr WITH CONFIG { realtime:true } AND OPTIONS { reindex : false };
サポートされている型のすべてのカラムに対して設定されているdocValuesで検索インデックスを作成する
CREATE SEARCH INDEX ON wiki.solr WITH COLUMNS * { docValues:true };