Solr使用dismax解析器时q.alt参数查询无返回结果如何解决
问题原因
q.alt仅在请求未携带q参数,或q参数值为空时才会生效。你使用Solr Admin UI查询页时,页面默认会自动填充q=*:*参数,若未手动清空,q.alt会直接失效,此时dismax解析器会拿q的取值去你配置的默认查询字段(df或qf参数指定)匹配,不匹配就会返回空结果。- 你用到的
row=0是错误写法,Solr控制返回结果条数的参数为rows,若手动设置rows=0则会要求Solr不返回任何匹配文档,仅返回命中数等统计信息。
正确使用方式
两种实现dismax全量查询的方案:
- 方案一:直接通过
q参数传全量匹配规则,无需使用q.alt
http://127.0.0.1:8983/solr/#/techproducts/query?q.op=OR&defType=dismax&q=*:*&rows=10
- 方案二:使用
q.alt的情况下,必须将q参数置空
http://127.0.0.1:8983/solr/#/techproducts/query?q.op=OR&defType=dismax&q=&q.alt=*:*&rows=10
你可以直接在Admin UI的查询表单中清空q输入框的内容,defType选择dismax,q.alt填写*:*,设置对应rows数值后点击执行,即可正常返回全量查询结果。
内容的提问来源于stack exchange,提问作者Neil
相关产品推荐
相关产品推荐

