2010-09-15 5 views
5

Wie kann ich Solr-Suchabfragen debuggen, wenn ich den Sunspot-Edelstein auf Rails verwende? Ich habe einige Fragen, die bizarr hohe Werte zurückgeben, und ich versuche herauszufinden, warum das so ist.Debugging von Solr-Suchanfragen unter Sunspot

Es scheint nicht wie Debugging-Informationen zu Sunspot ausgesetzt ist, so denke ich, dass ich über Solr direkt debuggen muss. Glücklicherweise hat Solr ein praktisches Web-Interface zum Suchen, aber aus irgendeinem Grund kehren alle Abfragen, die ich dort eintrage, mit 0 Ergebnissen zurück.

Zum Beispiel, wenn ich nach dem Wort "Test" auf meiner Web-App suche, gibt es viele Treffer zurück. Wenn ich für die gleiche Sache auf der Solr Admin-Interface zu suchen ist, was ich bekommen:

<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

Was ist Ihre Anfrage URL? Es scheint dort ein leerer fq zu geben, nicht gut ... –

+0

mögliches Duplikat von [Solr Suche mit Susnpot Gem] (http://stackoverflow.com/questions/8078632/solr-search-using-susnpot-gem) – Mark

Antwort

2

Suchen Sie in Ihrer Webanwendung nach bestimmten Feldern oder nur nach dem Standardfeld? Wenn Sie etwas in die Admin-Konsole eingeben, um Suchvorgänge zu debuggen, vergisst man leicht zu sagen, in welchen Feldern gesucht werden soll. Wenn Sie nicht danach fragen, wird nur das Standardfeld durchsucht.

https://stackoverflow.com/a/8082936/474597 hat eine bessere explaination, in dem die Suche Spaltennamen enthalten müssen wie body_text:your_key_words

1

Um an Solr gesendete Anfragen zu debuggen, verwende ich oft einen HTTP-Request-Analyzer wie oder fiddler.

1

die Protokollebene zu FINEST Set und erhalten Sie die genaue Abfrage in der Log-Datei.