4

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

<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

ありがとう

4

2 に答える 2

10

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

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

アナライザーtype="Index"に注意してください

于 2012-02-03T19:07:20.067 に答える
0

ファセット パラメータを削除するとどうなりますか? すべてのドキュメントも返されますか?

私の意見では、ファセットは検索結果に影響を与えるべきではありません。fq パラメータで渡したフィルタ クエリが何らかの理由で機能していないようです。

于 2011-12-09T08:59:24.777 に答える