【问题标题】:How to do an IN query in Solr?如何在 Solr 中进行 IN 查询?
【发布时间】:2011-08-23 01:37:58
【问题描述】:

我的文档具有多值字段“sharedTo”,其中包含文档共享到的组。现在我想找到至少共享给给定组列表中的一个的所有文档。例如。我想查找与“foo”组或“bar”组或两者共享的所有文档。目前我正在构建这样的查询:

sharedTo:"foo" OR sharedTo:"bar"

对于每个组,我只需添加一个新的 OR 查询部分。这行得通,但是我想知道是否有更有效的方法来做到这一点,比如

sharedTo IN ('foo', 'bar')

【问题讨论】:

    标签: syntax solr


    【解决方案1】:

    如果您的默认运算符是 OR,那么您可以将查询指定为

    sharedTo:('foo' 'bar')

    如果您的默认运算符是 AND,那么您必须这样做:sharedTo:(foo OR bar)

    【讨论】:

    • 有人知道这里的术语数量是否有实际或硬性限制? (即'foo''bar')
    【解决方案2】:

    上述解决方案对我不起作用。但是这个语法确实

    column_name:+(value1 value2)

    http://harmssite.com/2012/09/solr-query-for-mimicking-sql-in-operator-functionality/

    【讨论】:

      【解决方案3】:

      如果您使用 SolrJ 作为客户端,您的查询将如下所示:

      fq=sharedTo:("foo" OR "bar")
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-13
        • 2011-09-17
        • 2011-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-19
        • 2012-07-29
        相关资源
        最近更新 更多