在 solr 响应的过滤器查询中传递逗号分隔值

Posted

技术标签:

【中文标题】在 solr 响应的过滤器查询中传递逗号分隔值【英文标题】:passing comma separated values in filter query of solr response 【发布时间】:2011-07-14 20:44:17 【问题描述】:

我想在 solr 响应的过滤查询 (fq) 中传递逗号分隔值,目前当我想传递多个类别时,我使用 OR 运算符。 像这样 fq=categoryId:3 OR categoryId:55 OR categoryId:34

有没有办法传递像 fq=categoryId:3,55,34 这样的值

【问题讨论】:

【参考方案1】:

如果您的过滤查询字段是文本或字符串类型,您也可以使用 fq=categoryId:(IN 3 55 34 44)。但 IN 运算符不适用于整数字段或其他字符串/文本字段。

【讨论】:

【参考方案2】:

fq=categoryId:(3 55 34) 如果您的默认运算符是 OR 应该可以工作。否则,请尝试fq=categoryId:(3 OR 55 OR 34)。这在 Lucene 查询语法中称为 Field Grouping。 (Solr 支持完整的 Lucene 语法,如文档中的 here。)

【讨论】:

以上是关于在 solr 响应的过滤器查询中传递逗号分隔值的主要内容,如果未能解决你的问题,请参考以下文章

List.JS - 使用逗号分隔值过滤

在 C# 中过滤逗号分隔的字符串

Where子句Mysql中的逗号分隔字符串参数过滤器

将数组存储为逗号分隔,如何使用 LINQ 进行查询?

Solr 过滤器查询,包括 NOT 和 OR

如何在光标的 select 语句 where 子句中传递逗号分隔值