【问题标题】:Solr query with space, only (#q=%20) stalls带有空格的 Solr 查询,仅 (#q=%20) 停顿
【发布时间】:2021-04-13 16:01:22
【问题描述】:

我有一个基于 Web 的前端(目前是 localhost),它使用 Ajax 来查询 Solr。

它运行良好,但如果我在输入/搜索框中提交一个空格(没有别的),浏览器中的 URL 会显示

...#q=%20

在这种情况下,我收到了400 error,我的网页停止了(不刷新),显然是在等待 Solr 的响应。

相比之下,如果我提交分号 (;) 而不是空格,则页面会立即刷新,尽管没有结果(displaying 0 to 0 of 0;预期)。

我的问题是什么触发了 Solr 中的“ ”(%20) 查询错误,我该如何在solrconfig.xml 中解决它?

【问题讨论】:

  • 如果请求为空,不发送查询到 Solr?这通常是您的控制器/应用程序的问题,而不是 Solr 的问题。还有q.alt 参数,这是一个替代查询,如果q 参数丢失或为空(因此您可以硬编码后备查询),则使用该查询:lucene.apache.org/solr/guide/6_6/… - 但通常最好在您的控制器或应用程序逻辑。

标签: ajax solr solrconfig


【解决方案1】:

更新。这个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/

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 2017-03-06
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2010-12-27
    • 1970-01-01
    相关资源
    最近更新 更多