【问题标题】:SOLR - PathHierarchyTokenizerFactory Facet QuerySOLR - PathHierarchyTokenizerFactory Facet 查询
【发布时间】:2011-10-18 17:29:48
【问题描述】:

我一直在尝试对配置为 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=*:*&amp;rows=0&amp;fq=libraries:"/test/subtest"&amp;facet=true&amp;facet.field=libraries&amp;f.libraries.facet.sort=true&amp;f.libraries.facet.limit=-1&amp;f.libraries.facet.mincount=-1

谢谢

【问题讨论】:

    标签: java solr lucene solrnet faceted-search


    【解决方案1】:

    更改您的 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"

    【讨论】:

      【解决方案2】:

      如果删除分面参数会怎样?它是否也返回所有文档?

      在我看来,分面不应该对搜索结果产生影响。在我看来,您在 fq 参数中传递的过滤器查询由于某种原因无法正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多