我在从solr中查询时,默认条件用的是or,但是遇到了一个问题,同一个core中,使用
查询条件如下:commodityReviewId:25021921 25026921 ,应该返回两条数据,
怎么结果只返回25021921对应的数据,如果25026921放在前面,则返回25026921对应的数据,不知道为什么这种查询会失效,关键是同一个core中,我用别的字段这样查没问题的,求解答,在线等
solr查询时,为什么不能匹配多个结果返回
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 你知我知皆知 2024-08-03 12:46关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
Solr的query解析规则是基于查询语句的结构和语法来确定如何进行匹配。当您在Solr中使用
OR
或AND
查询时,它实际上是在索引中的两个查询项之间创建一个逻辑关系。在这种情况下,您的查询是:
(commodityReviewId = '25021921' AND commodityReviewId = '25026921')
这意味着Solr将尝试同时匹配这两个查询条件。然而,由于它们是独立的查询,所以它们可能不会产生预期的结果。
为了解决这个问题,您可以考虑以下几种方法:
-
组合查询: 将两个查询合并成一个复合查询,以确保所有条件都被满足。例如:
(commodityReviewId = '25021921') OR (commodityReviewId = '25026921')
-
限制查询数量: 如果你只需要一条结果,你可以通过添加额外的条件(例如,仅搜索id大于某个值)来实现这一点。
-
使用
IN
查询: 可以使用IN
查询代替OR
或AND
查询,这将更精确地表示你的需求。 -
编写自定义查询: 如果上述解决方案都无法解决你的问题,可以考虑编写自定义的查询语言,以便更好地控制查询策略。
以上就是一些可能的解决方案,具体取决于您的实际需求和索引设置。
解决 无用评论 打赏 举报 -
悬赏问题
- ¥15 用visualstudio2022创建vue项目后无法启动
- ¥15 x趋于0时tanx-sinx极限可以拆开算吗
- ¥500 把面具戴到人脸上,请大家贡献智慧
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境
- ¥30 关于#java#的问题,请各位专家解答!
- ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并