You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Solr多值字段中筛选仅包含指定值的记录

问题

我有如下样本数据,其中Id是Solr的多值字段:

[
    { "Name": "A", "Id": ["4","205","105"] },
    { "Name": "B", "Id": ["4","205"] },
    { "Name": "C", "Id": ["205"] },
    { "Name": "D", "Id": ["205","205"] }
]

需要筛选出仅包含Id=205的记录,期望输出Name为C和D。

解决方案

要筛选出仅包含205作为Id值的记录,你可以用Solr的过滤查询(fq)组合两个条件:

写法一(通配符方式)

fq=Id:205 AND NOT Id:(* -205)

写法二(范围排除,更高效)

如果Id是数值类型,推荐用范围排除来避免通配符的性能损耗:

fq=Id:205 AND -Id:[* TO 204] AND -Id:[206 TO *]

逻辑说明

  • Id:205:保证记录至少包含一个205的Id值
  • NOT Id:(* -205) / 范围排除条件:排除所有存在非205Id值的记录,确保结果里的记录只有205(包括重复的205,比如D的情况)

这样查询就能精准得到你需要的C和D两条记录。

内容的提问来源于stack exchange,提问作者Vishal Kumawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:24:24