2010-09-15 12 views
5

Jak mogę debugować zapytania Solr podczas używania klejnotu Sunspot w Railsach? Mam kilka pytań, które zwracają dziwacznie wysokie wyniki, i próbuję dojść do sedna, dlaczego tak się dzieje.Debugowanie zapytań Solr w Sunspot

Wygląda na to, że żadne informacje dotyczące debugowania nie są narażone na działanie Sunspot, więc myślę, że muszę bezpośrednio debugować przez Solr. Na szczęście Solr ma poręczny interfejs sieciowy do wyszukiwania, ale z jakiegoś powodu wszelkie zapytania, które tam wprowadzam, zwracają 0 wyników.

Na przykład, gdy wyszukiwane słowo "test" w mojej aplikacji internetowej, zwraca wiele trafień. Kiedy szuka tej samej rzeczy w interfejsie administracyjnym Solr to co mam:

<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

Jaki jest Twój adres URL kwerendy? Wydaje się, że jest tam pusta fq, a nie dobra ... –

+0

możliwy duplikat [wyszukiwania Solr przy użyciu Susnpot Gem] (http://stackoverflow.com/questions/8078632/solr-search-using-susnpot-gem) – Mark

Odpowiedz

2

Podczas wyszukiwania w aplikacji internetowej można wyszukiwać określone pola lub tylko domyślne pole? Kiedy wpisujesz coś w konsoli administracyjnej, aby debugować wyszukiwania, łatwo jest zapomnieć powiedzieć mu, które pola chcesz przeszukać, a jeśli tego nie powiesz, to przeszukiwane jest tylko pole domyślne.

https://stackoverflow.com/a/8082936/474597 ma lepsze wyjaśnieniu, w której trzeba zawierać nazwę kolumny wyszukiwarki takie jak body_text:your_key_words

1

Aby debugować żądania wysłane do Solr, często używam analizatora zapytań http, takiego jak tcpmon lub fiddler.

1

zmienić poziomu log dla najlepszych i można zobaczyć dokładną kwerendę w pliku dziennika.

Powiązane problemy