如何在Solr中进行IN查询?

时间:2011-05-11 07:17:43

标签: syntax solr

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

sharedTo:"foo" OR sharedTo:"bar"

对于每个组,我只需添加一个新的OR查询部分。这是有效的,但是我想知道是否有一种更有效的方法可以像

这样做
sharedTo IN ('foo', 'bar')

3 个答案:

答案 0 :(得分:57)

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

sharedTo :('foo''bar')

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

答案 1 :(得分:0)

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

column_name:+(value1 value2)

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

答案 2 :(得分:0)

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

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

希望能帮到你