web-dev-qa-db-ja.com

Solrテキストフィールドと文字列フィールド-異なる検索動作

私はSolr4 +に取り組んでいます。

Solrスキーマには、さまざまなsolrフィールドタイプを持ついくつかのフィールドがあります。

テキストフィールドと文字列フィールドの検索は異なりますか?

期待どおりに機能しない文字列フィールド(いくつかのファセットフィールドのコピーフィールド)を検索しようとしているためです。宛先文字列フィールドにはインデックスが付けられ、両方が格納されます。

ただし、テキストフィールド(インデックスのみ)である宛先フィールドを変更すると、正常に機能します。

なぜこれが起こるのか提案できますか?検索に関して、solrのテキストフィールドと文字列フィールドの正確な違いは何ですか?

17
Ankita

TextFieldsには通常、トークナイザーとテキスト分析が添付されています。つまり、インデックス付けされたコンテンツは、完全に一致する必要がない個別のトークンに分割されます。各Word /トークンを個別に照合して、ドキュメント全体を一致させる必要があるかどうかを判断できます。応答に含まれます。

StrFieldsは、トークン化または分析/フィルターを適用することはできず、完全一致の結果のみを提供します。分析またはフィルターが適用されたStrFieldが必要な場合は、TextFieldおよびKeywordTokenizerを使用してこれを実装できます。

30
MatsLindh

妥当で一般的な言語間のデフォルトを持つ一般的なテキストフィールド:StandardTokenizerでトークン化し、大文字と小文字を区別しない「stopwords.txt」(デフォルトでは空)からストップワードを削除し、大文字と小文字を区別しません。クエリ時にのみ、同義語も適用されます。

StrFieldタイプは分析されませんが、逐語的にインデックス付け/保存されます。

0
AsadKhan