Apache Solr中多Filter Query(fq)连接问题:筛选指定条件文档
解决Solr Filter Query逻辑连接问题
问题根源
你当前的fq=-myfield:* myfield:[3 TO *]是逻辑AND关系,要求文档同时满足「不存在myfield字段」和「myfield值大于3」,这两个条件不可能同时成立,因此返回空结果。
正确的Filter Query写法
需要将两个条件改为逻辑OR关系,Solr中支持用OR关键词或||符号实现:
方式1:使用OR关键词
fq=(-myfield:* OR myfield:[3 TO *])
方式2:使用||符号
fq=(-myfield:* || myfield:[3 TO *])
完整查询语句
替换修改后的fq后,完整查询如下:
q=entry defType=dismax qf=title fl=* fq=(-myfield:* OR myfield:[3 TO *])
该查询会正确匹配到Entry #1(myfield=5>3)和Entry #3(无myfield字段),同时满足搜索词entry的匹配要求。
内容的提问来源于stack exchange,提问作者René M.
相关产品推荐
相关产品推荐

