Apache Solr - 过滤器查询中的 OR

Posted

技术标签:

【中文标题】Apache Solr - 过滤器查询中的 OR【英文标题】:Apache Solr - OR in filter query 【发布时间】:2011-11-27 12:54:34 【问题描述】:

是否可以使用过滤器查询(使用 apache Solr)搜索属于少数类别之一的项目,例如“计算机”或“电话”类别中的项目

当我想搜索计算机和手机类别中的项目时,我输入:

select/?q=...&fq=cat:computers&fq=cat:phones

但可以使用OR 代替AND

【问题讨论】:

【参考方案1】:

你可以使用

fq=cat:(computers OR phones)

【讨论】:

您好,我有 params=start=1&q=file_content+:+cześć*&wt=javabin&fq=file_create_user:\-1+AND+file_parents_folder:(341\+AND\+4222)&version=2&rows =25 status=400 QTime=2 并且我收到错误 Invalid Number: (341 AND 4222) 这会使其成为过滤器缓存中的单个键还是过滤器缓存中的两个不同键(一个用于计算机,一个用于手机)?【参考方案2】:

过滤器查询只是一个查询 - 复杂到您想要的程度。所以,你当然可以建立一个查询,例如,

fq=(cat1:val1 OR cat2:val2 OR (cat3:(val3 AND val4)))

...或其他。

过滤器查询和普通查询之间的唯一区别(除了内存和缓存问题,您可能还需要考虑)是过滤器查询根本不影响相关性分数。但就复杂性而言,你可以为所欲为。

【讨论】:

以上是关于Apache Solr - 过滤器查询中的 OR的主要内容,如果未能解决你的问题,请参考以下文章

通过 Solrj 查询 Solr:基础

Solr复杂条件查询

SOLR查询过滤结果中的自定义排序?

Solr实现 并集式多值复杂 过滤查询的权限

Solr 过滤器查询,包括 NOT 和 OR

如何让 Solr 不索引查询中的常用词?