2011-08-24 18 views
38

apache Solrなぜ両方とも目的を解決すれば、テキストフィールドよりも文字フィールドを優先する必要があるのはなぜですか?Apache Solr文字列フィールドまたはテキストフィールド?

文字列やテキストがインデックスサイズ、インデックス読込、インデックス作成などのパラメータにどのように影響しますか?

答えて

83

solrスキーマで定義されているデフォルトのフィールドは、大きく異なります。

Stringは、トークン化などを行わずに正確な文字列として単語/文章を格納します。たとえば、ファセットなどの完全一致を格納するのに一般的に便利です。

Textは、通常、トークン化と2次処理(下部ケーシングなど)を実行します。文の一部と一致させたい場合のすべてのシナリオに役立ちます。

次のサンプル、"This is a sample sentence"は、に我々はそれがsample(あるいはsamples有効stemmning付き)を検索するために十分でありながら、stringフィールドからヒットを取得するために、正確にテキストThis is a sample sentenceを検索する必要があり、両方のフィールドにインデックスされている場合textフィールドからヒットを得る。

+0

インデックスサイズ、インデックスの読み取り、インデックスの作成についてもコメントできますか? – Rahul

+2

トークン化する際には、より大きなインデックスサイズが得られます。さらに多くの作業があるため、インデックスの作成はわずかに遅くなります。どちらの方法でもインデックスの読み込み/作成は素晴らしいので、何百万ものドキュメントに近づいていなければ心配しないでください。 –

+1

私は何百万ものドキュメントを読んでいます。それは問題ではないと思っています。文字列フィールドに向いています。なぜなら、すべてのケースで効率的と思われ、トークナイザ/全文検索 – Rahul

関連する問題