【问题标题】:How can I search on a list of values using Solr/Lucene?如何使用 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 有更简单的方法吗?

【问题讨论】:

标签: lucene solr


【解决方案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)

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 2011-07-16
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 2012-09-05
    • 2020-01-05
    相关资源
    最近更新 更多