如何使用 Solr/Lucene 搜索值列表?
Posted
技术标签:
【中文标题】如何使用 Solr/Lucene 搜索值列表?【英文标题】:How can I search on a list of values using Solr/Lucene? 【发布时间】:2011-02-06 12:02:07 【问题描述】:给定以下查询:
(field:value1 OR field:value2 OR field:value3 OR ... OR field:value50)
可以将其分解为不那么冗长的内容吗?基本上我有数百个类别 ID,我需要在大量类别 ID 下搜索项目(一次 20-50 个)。在 mysql 中,我只使用 field IN(value1, value2, value3)
而不是 (field = value1 OR field = value2 etc...)
。
Solr/Lucene 有更简单的方法吗?
【问题讨论】:
***.com/questions/2533815/… 【参考方案1】:使用
field:(value1 value2 value3)
或者如果你的默认运算符是 AND 然后使用
field:(value1 OR value2 OR value3)
【讨论】:
知道文档中的解释吗? 虽然这种方法有效,但并不准确。至少没有弹性。如果您有任何其他字段(在我的情况下为_id
)具有相同的值,它也会找到这些字段。即:/_search?q=(clientId:3966 OR 42952)
带来了这 2 个客户和另一个 _id=42952
@NicolasMarianoObregon 我不确定这种语法是否适用于 Elastic,但您在编写查询时打错了字。 clientId:
应该在括号之外。
关于在 Solr 上使用此排名而不是过滤的任何提示?【参考方案2】:
接受的答案对我无效,但以下格式有效:+(field:value1 OR field:value2 OR field:value3)
【讨论】:
以上是关于如何使用 Solr/Lucene 搜索值列表?的主要内容,如果未能解决你的问题,请参考以下文章
Apache Solr - Lucene - 邮政编码半径搜索