SOLR新增排序字段可正常排序但查询结果不显示问题咨询
Solr新增字段可排序但查询响应无返回值排查方案
- 排查字段名映射问题
你在schema中配置的静态字段名为recommendationRank,但实际查询、排序使用的是recommendationRank_EN_US,大概率是schema中存在*_EN_US格式的动态字段规则,或是系统内置了多语言字段自动映射逻辑,你配置的静态字段并未被实际使用,数据写入时自动落到了带语言后缀的动态字段中。 - 检查字段返回配置
先在查询参数中显式增加fl参数指定返回字段,示例:http://localhost:48100/solr/MainSystem1/select?indent=on&q=*:*&sort=recommendationRank_EN_US%20desc&wt=json&fl=*,recommendationRank,recommendationRank_EN_US,确认字段是否能返回。若仍然无法返回,检查对应字段的stored属性是否为true,同时确认requestHandler配置中是否设置了隐式的fl参数过滤了新增字段。 - 排查字段类型与查询值不匹配问题
从debug日志的parsedquery_toString可以看到,查询值2被解析为了二进制字节格式\b\u0000\u0000\u0000\u0002,说明recommendationRank_EN_US的字段类型并非你配置的string,而是数值类型。你传入字符串格式的2做精确匹配会触发类型不匹配,导致查询无结果,但排序时Solr会自动做类型转换,因此排序功能可以正常生效。 - 验证DIH导入逻辑
检查DIH配置文件中是否将该排序字段的值仅写入了带语言后缀的字段,没有给你配置的recommendationRank静态字段赋值,导致静态字段为空,因此响应中无法返回该字段。 - 确认索引实际字段列表
进入Solr管理后台的对应Core的Schema页面,查看实际加载的字段列表,确认recommendationRank、recommendationRank_EN_US两个字段的配置是否符合预期;也可以通过q=*:*&rows=1&fl=*查询全量返回字段,确认索引中实际存在的字段名称。
内容的提问来源于stack exchange,提问作者Rishabh
相关产品推荐
相关产品推荐

