2011-08-03 5 views
3

solr.PathHierarchyTokenizerFactoryに設定されているフィールドでクエリを実行しようとしましたが、クエリによってすべてのレコードが返されます。ファセットクエリを実行しても機能していないようです。誰かがこれを達成する方法を持っていますか?私は、PathHierarchyを使用してカテゴリ/サブカテゴリファセットを実装しています。SOLR - PathHierarchyTokenizerFactoryファセットクエリ

<fieldType name="text_path" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
     <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" /> 
    </analyzer> 
</fieldType> 

<field name="libraries" type="text_path" indexed="true" stored="true" multiValued="true" /> 

そして

http://linux2:8984/solr/select?q=*:*&rows=0&fq=libraries:"/test/subtest"&facet=true&facet.field=libraries&f.libraries.facet.sort=true&f.libraries.facet.limit=-1&f.libraries.facet.mincount=-1

おかげ

答えて

8

あなたのtext_pathフィールド定義を変更して、インデックス時のみPathHierarchyTokenizerFactoryを適用します(以下の例を参照)。 fq = libraries:(/ test/subtest OR/test)に対してfq = libraries: "/ test/subtest"が実際に照会するように、あなたの問題はトークナイザによって処理されています。

<fieldType name="text_path" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
     <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" /> 
    </analyzer> 
</fieldType> 

注アナライザタイプ= "インデックス"

+0

小型補正、タイプ= "インデックス"(小文字の指標) –

0

あなたはファセットのパラメータを削除した場合はどうなりますか?すべての書類も返却しますか?

私の意見では、ファセットは検索結果に影響しないはずです。 fqパラメータで渡したフィルタクエリが何らかの理由で動作していないようです。