Solr,查找字段中包含任何值的文档

时间:2013-12-09 16:07:25

标签: solr

我想搜索类似于Solr 4.5.1上的mysql中的IN运算符

我希望以下工作

fk_brand:(1615 928 1457 9 820 1349 414 811 1272)

但事实并非如此。想知道我试过的数据可能有问题

fk_brand:(1615)

哪个有效!有什么想法改变了吗?

我的原始查询(不起作用)

/select?q=*%3A*&fq=date_expires%3A%5BNOW+TO+*%5D&fq=fk_brand%3A(1615+928+1457+9+820+1349+414+811+1272)&sort=computed_ranking+DESC&rows=20&wt=json&indent=true&group=true&group.field=fk_brand&group.limit=3
好吧,我发现了为什么它不起作用。这是查询的调试。它使用AND运算符,我希望它使用OR。

parsed_filter_queries": [
  "date_expires:[2013-12-09T16:11:38.875Z TO *]",
  "+fk_brand:1615 +fk_brand:928 +fk_brand:1457 +fk_brand:9 +fk_brand:820 +fk_brand:1349 +fk_brand:414 +fk_brand:811 +fk_brand:1272"

我的默认运算符定义为AND。可能是它使用定义为默认的运算符?无论如何,我怎样才能实现这一目标?

将schema.xml中的默认运算符更改为OR,它按预期工作。但是,如果我想将默认运算符保持为AND,我怎么能指向查询解析器/构建器,他应该在那里使用OR运算符?

Nailed it:D 如果其他人面临类似的问题,答案是

fk_brand:(1615 OR 928 OR 1457 OR 9 OR 820 OR 1349 OR 414 OR 811 OR 1272)

使用OR运算符而不是空格(由于DEFAULT SEPARATOR是空格而被标识为DEFAULT OPERATOR)。

0 个答案:

没有答案