使用NOT AND运算符进行Solr Filter查询

时间:2014-11-20 22:50:54

标签: solr

我正在处理类似于以下内容的solr查询:

((Author_Type:" Corporate" AND(Social_Media_Type_Source:" Retweet" OR Social_Media_Type_Source:" Comment"))或NOT Author_Type:Corporate) 运行此时,不会返回任何结果。我正在寻找的是拉记录,只有当author_type与Corporate匹配,然后Social_media_type_source是(转推或评论)或者如果author_type不是公司将其包含在结果中。

我见过类似的例子,这是海报,但它似乎不适用于我。我使用的是solr4.10.1

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

希望在Solr 4.x中这不会过时,但你的问题可能在于认为NOT不能成为一元运算符。

来自Lucene/Solr 3.5 docs

  

注意:NOT运算符不能仅与一个术语一起使用。例如,   以下搜索将不返回任何结果:

     

不是“jakarta apache”

您可以通过利用*:*将返回所有文档的事实来表达相同的事情。因此,这样的事情可能有用:

  

(Author_Type:“Corporate”AND(Social_Media_Type_Source:“Retweet”OR   Social_Media_Type_Source:“评论”))或(*:* NOT   Author_Type:公司)