如何在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>
答案 0 :(得分:3)
如果将log_level设置为FINEST不起作用,则应将此行添加到初始值设定项中:
require "sunspot/rails/solr_logging"
答案 1 :(得分:2)
当您从网络应用中搜索时,您是搜索特定字段还是仅搜索默认字段?当您在管理控制台中键入内容以调试搜索时,很容易忘记告诉它您要搜索哪个字段,如果您不告诉它,则只搜索默认字段。
https://stackoverflow.com/a/8082936/474597有更好的解释,您需要在其中加入搜索列名称,例如body_text:your_key_words
答案 2 :(得分:1)
尝试阅读Debugging Search Application Relevance Issues,其中讨论了解释和Solr分析工具。
答案 3 :(得分:1)
答案 4 :(得分:1)
将日志级别设置为FINEST,您将在日志文件中看到确切的查询。