ALTER SEARCH INDEX SCHEMA

DSE Searchの検索インデックスを変更します。

検索インデックスの保留中のスキーマを変更します。

変更をアクティブなスキーマに適用するには、RELOAD SEARCH INDEXコマンドを使用します。

注: 領域節約プロファイルは、最初に作成した検索インデックスにのみ適用されます。たとえば、spaceSavingNoTextfieldを使用してインデックスを作成した後で、ALTERコマンドを使用してテキスト・カラムをインデックスに追加した場合、フィールド型はTextField(StrFieldでない)に設定されます。
制約事項: DSE Searchノードでのみ使用できるコマンドです。大きなデータセットに対して検索インデックスの管理コマンドを実行すると、CQLSHのデフォルトで指定された10分のタイムアウトよりも長くかかることがあります。必要に応じて、CQLSHクライアント・タイムアウトの値を引き上げてください。

構文

ALTER SEARCH INDEX SCHEMA ON [keyspace_name.]table_name
   (ADD field column_name
   | ADD element_path [attribute_list] WITH $$ json_map $$   
   | SET  element_identifier = 'value'
   | DROP field field_name
   | DROP element_identifier )
表 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要素を上書きするための実体とリテラル値を示します。
keyspace_name.table_name
検索インデックスのテーブルを指定します。テーブルがアクティブなキースペースにない場合、キースペース名は必須です。
column_name
テーブル・カラムを指定します。検索インデックス・フィールドと関連する型が自動的に定義されます。
element_path
設定のXMLパスを指定します。ピリオドで子要素を区切ります。例:
types.fieldTypes
attribute_list
角かっこで囲まれた属性値ペアのコンマ区切りリスト。以下の構文を使用します。
[@attribute_name = 'value', 
@attribute_name = 'value', ... ]
json_map
高度な設定。JSON形式を使用して、アナライザー・トークナイザーやフィールド型のフィルター定義などの子要素を定義します。
{ "element_name" : [ 
                  { "child_element_name" : { "child_attribute_name" : "value" } } ,
                  { "child_element_name" : { "child_attribute_name" : "value" } }, ... ],
"element_name" : [ 
                  { "child_element_name" : { "child_attribute_name" : "value" } } ,
                  { "child_element_name" : { "child_attribute_name" : "value" } }, ... ], ... }
element_identifier
設定のXMLパスを指定します。特定の属性を持つ要素を見つけるには、以下の構文を使用します。
element_name[@attribute_name='value']

EBNF

EBNF構文:
alterSearchIndex ::= 'ALTER' 'SEARCH' 'INDEX' 'SCHEMA'
          'ON' tableName
          (
          ('ADD' elementPath 'WITH' json) |
          ('ADD' 'FIELD' fieldName) |
          ('SET' elementPath('@' attribute)? '=' value) |
          ('DROP' elementPath('@' attribute)?)|
          ('DROP' 'FIELD' fieldName)
          )
          tableName        ::= (keyspace '.')? table
          elementPath      ::= elementName 
          ('[' '@' attributeName '=' attributeValue 
          (',' '@' attributeName '=' attributeValue)* ']')? 
          ( '.' elementName ('[' '@' attributeName '=' attributeValue 
          (',' '@' attributeName '=' attributeValue)* ']')?)*
レールロード・ダイアグラム:
図: alterSearchIndex



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

図: tableName

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

図: elementPath

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

wiki.solrキースペースとテーブル、および指定したオプションについて検索インデックス・スキーマを変更します。

要素パスと属性リストを使用して、新しいフィールドを追加する:

テーブルに存在しないフィールドをインデックスに追加し、複数のカラムを1つのインデックス付きフィールドに組み合わせて検索することができます。
ALTER SEARCH INDEX SCHEMA ON wiki.solr 
ADD fields.field[@name='fieldname', @type='StrField', @multiValued = 'true', @indexed='true'];

テーブル・カラムをインデックスに追加する:

フィールド定義を自動的に作成し、必要に応じて、インデックスがまだ作成されていないフィールドにフィールド型を追加します。
ALTER SEARCH INDEX SCHEMA ON demo.health_data ADD FIELD ethnicity;

フィールド名を変更する:

DSEは、カラム名とフィールド名を照合して、CQLカラムを検索インデックス・フィールドにマップします。マップされていないフィールドをコピー・フィールドに使用します。フィールドが存在しない場合は追加されます。

ALTER SEARCH INDEX SCHEMA ON wiki.solr SET field[@name='fieldname']@name = 'anotherFieldName';

フィールド型を変更する:

ALTER SEARCH INDEX SCHEMA ON wiki.solr SET field[@name='fieldname']@type = 'StrField';

インデックスからフィールドを削除する:

ALTER SEARCH INDEX SCHEMA ON wiki.solr DROP field fieldname;

コピー・フィールドを検索インデックスに追加する:

ALTER SEARCH INDEX SCHEMA ON wiki.solr ADD copyField[@source='sourcefield',@dest='destfield'];
注: ソース・フィールドとデスティネーション・フィールドの両方を定義する必要があります。