如何在 Solr 中进行 IN 查询?
Posted
技术标签:
【中文标题】如何在 Solr 中进行 IN 查询?【英文标题】:How to do an IN query in Solr? 【发布时间】:2011-08-23 01:37:58 【问题描述】:我的文档具有多值字段“sharedTo”,其中包含文档共享到的组。现在我想找到至少共享给给定组列表中的一个的所有文档。例如。我想查找与“foo”组或“bar”组或两者共享的所有文档。目前我正在构建这样的查询:
sharedTo:"foo" OR sharedTo:"bar"
对于每个组,我只需添加一个新的 OR 查询部分。这行得通,但是我想知道是否有更有效的方法来做到这一点,比如
sharedTo IN ('foo', 'bar')
【问题讨论】:
【参考方案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")
希望对你有帮助
【讨论】:
以上是关于如何在 Solr 中进行 IN 查询?的主要内容,如果未能解决你的问题,请参考以下文章