単一のフィールド名で一連の値をインデックス化する必要がある場合、複数値フィールドを使用する必要がありますか?それとも単一値フィールドを使用して、このフィールドのすべての値を空白で区切る必要がありますか?
フィールド タイプは文字列です。
ありがとう。
単一のフィールド名で一連の値をインデックス化する必要がある場合、複数値フィールドを使用する必要がありますか?それとも単一値フィールドを使用して、このフィールドのすべての値を空白で区切る必要がありますか?
フィールド タイプは文字列です。
ありがとう。
多値フィールドは配列またはリストと考えることができます...そしてあなたの質問では、そのフィールドでどのような操作を実行するかによって異なります。
そのフィールドに何かを頻繁に追加し続ける場合は、多値フィールドを使用する必要があります。追加する新しいアイテムを取得するたびに単一の文字列フィールドを設定する代わりに、単純に複数値フィールドに追加できます。また、多値フィールドの場合、更新中にリスト全体を知る必要はありません。ただし、単一のフィールドの場合、その中の古い値を知る必要があります..
より明確にするために;
「aaa bbb ccc」にインデックスを付ける必要があるとしましょう..それらを単一のフィールドに入れると、次のようになります
<str>aaa bbb ccc</str>
このフィールドに ddd を追加する必要がある場合は、フィールドに実際に aaa bbb ccc ddd を追加する必要があります (更新するたびにフィールドの古い値を確認したくないと思います)。
ただし、多値フィールドを使用する場合、aaa bbb ccc の場合は次のようになります
<field><str>aaa</str><str>bbb</str><str>ccc</str></field>
この場合、ddd を追加する必要がある場合、古い値を知る必要はありません。ddd を追加するだけで完了です...
ただし、フィールドからの削除もある場合は、単一フィールドを使用する必要があります。solr は多値フィールドからの削除をサポートしていないためです (ただし、ソース コードをハッキングすることで簡単に削除できます)。
お役に立てば幸いです...あなたが提供した情報は少なすぎて明確な答えが得られません