当q = <empty> </empty>时,Solr返回所有结果

时间:2014-01-22 01:39:00

标签: php codeigniter search solr codeigniter-url

我正在使用 PHP Codeigniter框架solr-php-client来构建搜索应用程序。

我有两页 -

  1. 只有一个输入框的搜索页面
  2. 结果页面,用于在用户在搜索页面中输入搜索字词时显示结果
  3. 问题是,除非我输入搜索字词solr-php-client,否则不会返回任何结果,并且网址只是"http://localhost:8080/search/?q="并且它不会执行任何操作。但是,当我输入一个搜索词,例如“apple”作为例如,它会重定向到结果页面,结果不会有任何问题,并且网址会变为"http://localhost:8080/rdsearch/?q=apple"

    我希望实现的目标是:当用户 在搜索页面中输入搜索字词时,或q在"http://localhost:8080/search/?q="中为空时,它应该只是指向结果页面并显示所有结果(类似于solr查询*:*

1 个答案:

答案 0 :(得分:2)

可能还有其他一些解决方案,我可以为您提出以下两种解决方案。

  1. 您可以查看输入框。如果它为空,默认情况下使用Solr URL传递*:*作为输入。
  2. 或者您可以修改选择请求处理程序的 solrconfig.xml 。把
  3.   

    <str name="q.alt">*:*</str>

    查询时

      

    的http:// '本地主机':8080 / solr的/ collection1 /选择Q =&安培;重量= XML&安培;缩进=真安培;的 DEFTYPE = dismax

    你可以看到我提供了q=,但它会返回所有结果。因为它将采用q.alt查询,因为查询解析器现在是Dismax。有关详细信息,请read here