新しいフィールド型の追加
検索インデックス・スキーマにSolrフィールド型定義を追加してから、その新しい型を使用します。
検索インデックス・スキーマにSolrフィールド型定義を追加してから、その新しい型を使用します。
手順
-
フィールド型定義がない場合は追加します。
ALTER SEARCH INDEX SCHEMA ON [keyspace_name.]table_name ADD types.fieldtype[@class='field_class', @name='type_name'];
-
フィールド型を変更します。
ALTER SEARCH INDEX SCHEMA ON [keyspace_name.]table_name SET field[@name='column_name']@type='fieldtype_name';
注: スキーマ内のフィールド名がテーブル・カラムと一致する場合は、カラムのインデックスが作成されます。 -
保留中の変更内容を確認します。
DESCRIBE PENDING SEARCH INDEX SCHEMA ON [keyspace_name.]table_name;
-
変更内容をアクティブ化します。
RELOAD SEARCH INDEX ON [keyspace_name.]table_name;
保留中のスキーマをアクティブなスキーマにコピーします。テーブルへのデータの挿入などの新しいトランザクションは、アクティブなスキーマを使用して処理されます。既存のデータにはスキーマの変更の影響はありません。 -
インデックスをリビルドします。
REBUILD SEARCH INDEX ON [keyspace_name.]table_name;
REBUILD SEARCH INDEXにより、既存のデータを使用してインデックスが再作成されます。フィールド型を変更した場合や、フィールドをインデックスに追加した場合など、データのインデックス作成方法を変更した場合にはリビルドする必要があります。
例
- Solr文字列フィールド型をhealth_data tableに追加します。
ALTER SEARCH INDEX SCHEMA ON demo.health_data SET types.fieldtype[@class='org.apache.solr.schema.StrField']@name='StrField';
- genderフィールド型を変更します。
ALTER SEARCH INDEX SCHEME ON demo.health_data SET field[@name='gender']@type='StrField';
「カラムをインデックスに追加する」を参照してください。