solr查询不等于文本值和大于0的数字

时间:2015-09-02 16:27:13

标签: solr solrj

我有两个字段的solr文档,一个是字符串,一个是整数。两个字段都允许为空。我正在尝试编写一个查询,以消除具有以下属性的文档:

textField =" badValue" AND(numberField为null或numberField = 0)

我添加了以下fq:

((NOT textField=badValue) OR numberField=[1 TO *])

这似乎没有正常工作,因为我得到一个textField = badValue和numberField = 0的文档。我的fq出了什么问题?

包含已解析查询的完整查询响应标头为:

" responseHeader":{     "状态":0,     " QTime":245,     " params":{       " q":"(numi)AND(solr_specs:[* TO ]或full_description:[ TO ])",       " defType":" edismax",       " bf":" log(sum(popular,1))",       "缩进":" true",       " qf":"类别^ 3.0制造商^ 1.0 sku ^ 0.2 split_sku ^ 0.2 upc ^ 1.0 invoice_description ^ 2.6 full_description solr_specs ^ 0.8 solr_spec_values ^ 1.7 legacyid legacy_altcode id",       " fl":" distributor_status,QOH_estimate,id,score",       "开始":" 0",       " fq":"((:* NOT distributor_status = VENDORDISC)或QOH_estimate = [1 TO *])",       "排序":"得分desc,id desc",       "行":" 20",       " wt":" json",       " _":" 1441220051438"     }   }

QOH_estimate是numberField,distributor_status是textField。

1 个答案:

答案 0 :(得分:2)

请在fq参数中尝试以下操作:((*:* NOT textField:badValue) OR numberField:[1 TO *])

((*:* NOT distributor_status:VENDORDISC) OR QOH_estimate:[1 TO *])

首先,您选择的文档不包含textField:badValueOR来自numberField:[1 TO *]条件的文档。