2012-01-25 15 views
5

http://wiki.apache.org/solr/SpellCheckComponentのドキュメントに基づいてSolr SpellCheck Componentを実装しましたが、正常に動作します。しかし、他のフィルタに基づいてのスペルチェック結果をフィルタリングしようとしています。以下のスキーマを検討してください。Solr Spellの結果に基づくフィルタクエリの結果

product_name 
product_text 
product_category 
product_spell -> copy string from product_name and product_text . And tokenized using white space analyzer 

上記のスキーマで、私は提供されたカテゴリに基づいてスペルチェックの結果をフィルタリングしようとしています。私はhttp://127.0.0.1:8080/solr/colr1/myspellcheck/?q=product_category:160%20appl&spellcheck=true&spellcheck.extendedResults=true&spellcheck.collate=trueのようなクエリを試みました。 スペルチェックの結果では、product_categoryは考慮されません。160

ディクショナリがすべてのカテゴリに対してビルドされたためですか?もしそうなら、すべてのカテゴリの辞書を作成することをお勧めしますか?

スペルチェックコンポーネントに別のフィルタ条件を設定することはできませんか?私が使用しています

は、Solrの3.5

答えて

6

私は以前fqパラメータを使用してフィルタリングすることは照合を使用して可能でなければなりませんSOLR-2010問題から分かるが、それはないですが、私は私が誤解だと思います。

実際、の実装を除いて、SpellCheckComponentはおそらく別のインデックスを持っています。これは、選択したフィールドが別のインデックスにインデックスされていることを意味します。スペルの修正を行うために選択した特定のフィールドに関する情報のみが含まれています。

好奇心が強い場合は、lukeを使用するような追加の索引がどのように見えるかを見ることもできます。これはもちろんルーネインデックスです。残念ながら、他のフィールドを使用したフィルタリングはオプションではありません。スペルを修正するために使用するフィールドが1つしかないからです。

+0

正確に!私は同じように感じる。 –

+0

私はsolr-userメーリングリストに確かに書きましたが、私はまだ返信がありませんでした。とにかく、私はコードを見ましたが、 'fq'パラメータは読み込まれていなくて、lukeのインデックスを見ました。フィルタを作成するのに十分な情報がありません。 – javanna

+0

はい、インデックスによると、私たちの発見は正しいです。 solr-userメーリングリスト –

関連する問題