2010-09-15 66 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,你會看到在日誌文件中的精確查詢。