2010-09-15 68 views
5

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

它似乎没有任何调试信息暴露于太阳黑子,所以我认为我需要直接通过Solr进行调试。幸运的是,Solr有一个方便的Web界面来搜索,但由于某种原因,我输入的任何查询都返回0结果。

例如,当我在我的web应用程序中搜索单词“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

什么是你的查询网址?似乎有一个空的fq那里,不好... – 2010-09-15 04:27:56

+0

[Solr搜索使用Susnpot Gem]的可能重复(http://stackoverflow.com/questions/8078632/solr-search-using-susnpot-gem) – Mark 2012-07-20 10:02:54

回答

2

当你从你的网络应用搜索你搜索特定的领域或只是默认的领域?当您在管理控制台中输入某些内容来调试搜索时,很容易忘记告诉它您要搜索的字段,如果您不告诉它,则只搜索默认字段。

https://stackoverflow.com/a/8082936/474597有一个更好的交代,在其中你需要包括搜索栏的名称,如body_text:your_key_words

1

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

1

设置日志级别为FINEST,你会看到在日志文件中的精确查询。