コピー・フィールドの使用
DSE Searchは、schema.xmlファイル内でstored=falseコピー・フィールド・ディレクティブをサポートしています。取り込んだデータは、コピー・フィールド・メカニズムによって検索のデスティネーション・フィールドにコピーされますが、Cassandraには格納されません。
DSE Searchは、schema.xmlファイル内でstored=false
を含んだcopyField
ディレクティブをサポートしています。取り込んだデータは、コピー・フィールド・メカニズムによって検索のデスティネーション・フィールドにコピーされますが、Cassandraには格納されません。新しいcopyField
ディレクティブをschema.xmlファイルに追加すると、既存のデータおよび新たに取り込まれたデータのインデックスは、新しいディレクティブの結果としてコピーされたときに再作成されます。
stored=true copyField
ディレクティブが削除されます。DataStaxでは、以下のようにディレクティブを変更してコアを再度読み込むことによって既存のコアをアップグレードすることを推奨します。- schema.xmlファイルで、copyFieldディレクティブの格納された属性値をtrueからfalseに変更します。
- solrconfig.xmlおよび変更したschema.xmlを送信します。
- Solrコアを再度読み込み、特定の場所でのインデックス再作成を指定します。
古いデータおよびCassandraカラムはそのまま残りますが、格納されたコピー・フィールドは、新しいデータには適用されません。
コピー・フィールドと複数値フィールドの使用
複数の値をフィールドにコピーするためにコピー・フィールドを使用する場合は、たとえばデータの挿入時にJSONでデータをフォーマットする必要がないので、CQLは便利です。Solr HTTP API update
コマンドを使用する場合は、データをフォーマットする必要があります。
上書きを防ぐために、CQL BATCH
コマンドを使用して1つのCQL文にカラム値を挿入します。このプロセスは、Solr HTTP APIと整合性が取られています。ここでコピーされるフィールドはすべて、挿入されるドキュメント内に存在する必要があります。値がCassandraに格納されているかどうかにかかわらず、カラム値を挿入するには、BATCHを使用する必要があります。
ファセット化のためのdocValuesとコピー・フィールドの使用
docValuesを使用すると、「Solr Wiki」で説明されている、ファセット化、グループ分け、フィルター処理、ソート、および他の操作のパフォーマンスが向上します。
- maxChars属性はサポートされていません。
- 同じ動的フィールドとの間でのコピーはサポートされていません。