我一直在尝试对配置为solr.PathHierarchyTokenizerFactory的字段执行查询,但查询只返回所有记录。似乎做一个facet查询是行不通的。有没有人有办法完成这个?我正在使用PathHierarchy来实现category / subcategory facets。
<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
由于
答案 0 :(得分:8)
更改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>
请注意分析器类型=“索引”
答案 1 :(得分:0)
如果删除分面参数会怎样?它还会返回所有文件吗?
从我看来,分面不应该对搜索结果产生影响。在我看来,你在fq参数中传递的过滤器查询由于某种原因不起作用。