调试太阳黑子上的Solr搜索查询

时间:2010-09-15 03:28:53

标签: ruby-on-rails search lucene solr sunspot

如何在Rails上使用Sunspot gem时调试Solr搜索查询?我有一些问题正在回归奇怪的高分,我正试图找到为什么会发生这种情况。

似乎没有任何调试信息暴露给Sunspot,所以我认为我需要直接通过Solr进行调试。幸运的是,Solr有一个方便的网页界面可供搜索,但出于某种原因,我输入的任何查询返回0结果。

例如,当我在我的网络应用上搜索单词“test”时,会返回大量点击。当我在Solr管理界面上搜索相同的东西时,这就是我得到的:

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">172</int>
    <lst name="params">
      <str name="explainOther"/>
      <str name="fl">*,score</str>
      <str name="indent">on</str>
      <str name="start">0</str>
      <str name="q">test</str>
      <str name="hl.fl"/>
      <str name="qt">standard</str>
      <str name="wt">standard</str>
      <str name="fq"/>
      <str name="version">2.2</str>
      <str name="rows">10</str>
    </lst>
  </lst>
  <result name="response" numFound="0" start="0" maxScore="0.0"/>
</response> 

5 个答案:

答案 0 :(得分:3)

如果将log_level设置为FINEST不起作用,则应将此行添加到初始值设定项中:

require "sunspot/rails/solr_logging"

来源:http://outoftime.github.com/2010/03/03/sunspot-1-0.html

答案 1 :(得分:2)

当您从网络应用中搜索时,您是搜索特定字段还是仅搜索默认字段?当您在管理控制台中键入内容以调试搜索时,很容易忘记告诉它您要搜索哪个字段,如果您不告诉它,则只搜索默认字段。

https://stackoverflow.com/a/8082936/474597有更好的解释,您需要在其中加入搜索列名称,例如body_text:your_key_words

答案 2 :(得分:1)

尝试阅读Debugging Search Application Relevance Issues,其中讨论了解释和Solr分析工具。

答案 3 :(得分:1)

要调试发送给Solr的请求,我经常使用http请求分析器,如tcpmonfiddler

答案 4 :(得分:1)

将日志级别设置为FINEST,您将在日志文件中看到确切的查询。