新しいフィールド型の追加

検索インデックス・スキーマにSolrフィールド型定義を追加してから、その新しい型を使用します。

検索インデックス・スキーマにSolrフィールド型定義を追加してから、その新しい型を使用します。

手順

  1. フィールド型定義がない場合は追加します。
    ALTER SEARCH INDEX SCHEMA ON [keyspace_name.]table_name
     ADD types.fieldtype[@class='field_class', @name='type_name'];
  2. フィールド型を変更します。
    ALTER SEARCH INDEX SCHEMA ON [keyspace_name.]table_name
    SET field[@name='column_name']@type='fieldtype_name';
    注: スキーマ内のフィールド名がテーブル・カラムと一致する場合は、カラムのインデックスが作成されます。
  3. 保留中の変更内容を確認します。
    DESCRIBE PENDING SEARCH INDEX SCHEMA ON [keyspace_name.]table_name;
  4. 変更内容をアクティブ化します。
    RELOAD SEARCH INDEX ON [keyspace_name.]table_name;
    保留中のスキーマをアクティブなスキーマにコピーします。テーブルへのデータの挿入などの新しいトランザクションは、アクティブなスキーマを使用して処理されます。既存のデータにはスキーマの変更の影響はありません。
  5. インデックスをリビルドします。
    REBUILD SEARCH INDEX ON [keyspace_name.]table_name;
    REBUILD SEARCH INDEXにより、既存のデータを使用してインデックスが再作成されます。フィールド型を変更した場合や、フィールドをインデックスに追加した場合など、データのインデックス作成方法を変更した場合にはリビルドする必要があります。

genderフィールドを使用してファセット・クエリーを実行するには、型をStrFieldに変更します。
  1. Solr文字列フィールド型をhealth_data tableに追加します。
    ALTER SEARCH INDEX SCHEMA ON demo.health_data 
    SET types.fieldtype[@class='org.apache.solr.schema.StrField']@name='StrField';
  2. genderフィールド型を変更します。
    ALTER SEARCH INDEX SCHEME ON demo.health_data
    SET field[@name='gender']@type='StrField';
    カラムをインデックスに追加する」を参照してください。