[英]No results from solr search q = *:*
使用solr 4.6.0,以下查询不返回任何结果:
solr/select/?q=*:*
但是删除q
参数会返回所有结果,例如:
solr/select/
请求处理程序配置包含invarient:
<str name="q.alt">*:*</str>
由于q.alt
在未提供q
时应该定义查询,因此两个查询不应该相同并返回结果吗? 第一种形式无法归还文件的原因有哪些?
附加背景
我正在使用django-haystack
2.1.0实际连接到solr,上面的查询只是提供空查询的实例中的“最简单的失败案例”。 我已经重载了haystack SearchForm
以防止空查询返回空结果集,这适用于更旧版本的solr和haystack 1.4。
如果没有提供任何值,Haystack会“帮助”使用*:*
填充q
。 不幸的是,这打破了上面的查询。 我可以修补干草堆,但我宁愿在solr中修复这个问题。
注意,具有填充(非空) q
参数的查询起作用,例如
solr/select/?q=test
这将按预期返回结果。
找到了解决方案。
搜索处理程序使用DisMaxQParserPlugin
(defType dismax
):
DisMaxQParserPlugin旨在处理简单的用户输入短语(没有繁重的语法)......
对于DisMax解析器, q
的*:*
形式无效,但q.alt
提供的回退是“默认情况下使用标准查询解析语法...” 。
将搜索处理程序插件更改为ExtendedDisMax (defType edismax
)可以解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.