Solr添加qf参数返回查询结果的原因及qf作用咨询
原因说明
- edismax具备语法容错降级机制,你提交的查询
((BookNumber:"BR\+9258")))存在多余右括号的语法错误。未配置qf参数时,edismax没有指定的备用搜索字段范围,语法解析失败后直接返回0匹配结果。 - 官方文档中qf为字段提权的说明仅适用于查询语法完全合法的场景。当查询存在语法错误时,edismax会自动触发降级逻辑:忽略无效的语法结构,将整个查询串拆分为分词后,到qf指定的所有字段中做匹配,此时qf承担了指定容错搜索字段范围的作用。你设置
qf=title后返回结果,说明对应文档的title字段匹配到了查询串拆分后的分词。
排查建议
你可以先修正查询括号问题为(BookNumber:"BR\+9258")再验证是否能匹配到BookNumber字段的对应文档,同时可以在Solr GUI的分析页面,输入查询值和BookNumber字段,确认分词逻辑是否符合预期。
内容的提问来源于stack exchange,提问作者ihristov
相关产品推荐
相关产品推荐

