Solr:排除部分网址

时间:2016-06-03 07:27:59

标签: url solr filtering

我在schema.xml中有一个字段网址。我需要根据此字段分隔搜索结果。

例如

  • 在一次搜索中我想要 www.example.com/part1 / 的结果实际上所有具有此前缀的结果。
  • 进行其他搜索我希望 www.example.com 获得结果,但不会在其网址中包含 / part1 / 的所有文档。

我怎样才能做到这一点? fq不接受特殊字符,我不想用NGramFilterFactory拆分内容,所以这种行为应该只在搜索时。

1 个答案:

答案 0 :(得分:1)

PathHierarchyTokenizerFactory应该做你需要的,我相信。它将路径类型的字符串拆分为多个标记,从根向前构建。有关详细信息,请参阅https://cwiki.apache.org/confluence/display/solr/Tokenizers#Tokenizers-PathHierarchyTokenizer

然后,您可以执行q=path:www.example.com -path:*/part1之类的查询,假设您正在使用Path Hierarchy Tokenizer对该字段进行索引和查询分析。