目前我正在解决3个Solr查询并在我的servlet中执行操作以实现我的要求。我的要求是找到属于非特殊类别的单词。
特殊类别单词将在特殊文档和普通文档中有条目,将有两个特殊类别。所以我需要提取所有文档并从中删除特殊类别。目前我在使用Hash Maps的servlet中这样做。
是否可以在Solr查询中执行此操作而无需编写任何处理程序?
我想实现query1 - (query2 U query3)
之类的东西答案 0 :(得分:0)
您可以使用过滤器查询从原始查询中排除其他查询的结果。在Solr中,您可以使用-
否定查询结果。这不会涵盖所有可能的Set操作,但它应该满足您的需求。
举个例子,假设你查询某个公司的T恤衫
q=company:hilfiger
现在你要排除那些红色或绿色的衬衫。为此,您使用-
否定每个查询,并为每个约束添加单独的fq
参数。
fq=-color:red&fq=-color:green
将所有这些放在一起,您将查询
`q=company:hilfiger&fq=-color:red&fq=-color:green
有关过滤查询的参考资料