问题描述
我有一个基于 Web 的前端(当前是 localhost),它使用 Ajax 来查询 Solr。
它运行良好,但如果我在输入/搜索框中提交一个空格(没有其他内容),则浏览器中的 URL 会显示
...#q=%20
在这种情况下,我得到一个 400 error
,我的网页停止(不刷新),显然是在等待 Solr 的响应。
相比之下,如果我提交的是分号 (;
) 而不是空格,则页面会立即刷新,尽管没有结果(displaying 0 to 0 of 0
;预期)。
我的问题是是什么触发了 Solr 中的“
”(%20
) 查询错误,以及如何在 solrconfig.xml
中解决它?
解决方法
更新。此 solrconfig.xml
条目解决了我描述的 q=%20
问题。
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="hl">off</str>
<str name="wt">html</str>
<str name="df">query</str>
<!-- *** ADDITION: *** -->
<str name="defType">edismax</str>
</lst>
</requestHandler>
注意:开发代码,虚拟数据。
之前: https://www.youtube.com/watch?v=GhkA4XlqWds&list=PLTtHvbtVBhk6zAqSJ3A1-shsD_h5i3IuP&index=2
之后: https://www.youtube.com/watch?v=507DdPOx1xA&list=PLTtHvbtVBhk6zAqSJ3A1-shsD_h5i3IuP&index=1
其他讨论(reddit:Solr):https://old.reddit.com/r/Solr/comments/kt97ql/solr_query_with_space_only_q20_gives_error/