是否可以在Solr结果集中进行代数运算?

时间:2014-03-17 15:55:17

标签: solr

目前我正在解决3个Solr查询并在我的servlet中执行操作以实现我的要求。我的要求是找到属于非特殊类别的单词。

特殊类别单词将在特殊文档和普通文档中有条目,将有两个特殊类别。所以我需要提取所有文档并从中删除特殊类别。目前我在使用Hash Maps的servlet中这样做。

是否可以在Solr查询中执行此操作而无需编写任何处理程序?

我想实现query1 - (query2 U query3)

之类的东西

1 个答案:

答案 0 :(得分:0)

您可以使用过滤器查询从原始查询中排除其他查询的结果。在Solr中,您可以使用-否定查询结果。这不会涵盖所有可能的Set操作,但它应该满足您的需求。

举个例子,假设你查询某个公司的T恤衫

q=company:hilfiger

现在你要排除那些红色或绿色的衬衫。为此,您使用-否定每个查询,并为每个约束添加单独的fq参数。

fq=-color:red&fq=-color:green

将所有这些放在一起,您将查询

`q=company:hilfiger&fq=-color:red&fq=-color:green

有关过滤查询的参考资料

相关问题