【问题标题】:Debugging Solr search queries on Sunspot在 Sunspot 上调试 Solr 搜索查询
【发布时间】:2011-04-12 11:35:28
【问题描述】:

在 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> 

【问题讨论】:

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


【解决方案1】:

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

https://stackoverflow.com/a/8082936/474597有更好的解释,其中需要包含body_text:your_key_words等搜索列名

【讨论】:

    【解决方案2】:

    如果将 log_level 设置为 FINEST 不起作用,则应将此行添加到初始化程序:

    require "sunspot/rails/solr_logging"
    

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        为了调试发送到 Solr 的请求,我经常使用 http 请求分析器,例如 tcpmonfiddler

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-07-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-11-11
            • 1970-01-01
            相关资源
            最近更新 更多