5

Rails で Sunspot gem を使用しているときに Solr 検索クエリをデバッグするにはどうすればよいですか? 奇妙に高いスコアを返すクエリがいくつかあり、なぜこれが起こっているのかを突き止めようとしています。

Sunspot にはデバッグ情報が公開されていないようなので、Solr から直接デバッグする必要があると思います。幸いなことに、Solr には検索用の便利な Web インターフェイスがありますが、何らかの理由で、そこに入力したクエリはすべて 0 件の結果を返します。

たとえば、Web アプリで「テスト」という単語を検索すると、多数のヒットが返されます。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> 
4

5 に答える 5

3

log_level を FINEST に設定してもうまくいかない場合は、次の行を初期化子に追加する必要があります。

require "sunspot/rails/solr_logging"

ソース: http://outoftime.github.com/2010/03/03/sunspot-1-0.html

于 2012-02-08T21:51:27.193 に答える
2

Web アプリから検索するとき、特定のフィールドを検索しますか?それとも既定のフィールドのみを検索しますか? 検索をデバッグするために管理コンソールに何かを入力するとき、検索するフィールドを指定するのを忘れがちです。指定しないと、デフォルトのフィールドのみが検索されます。

https://stackoverflow.com/a/8082936/474597にはより良い説明があり、次のような検索列名を含める必要がありますbody_text:your_key_words

于 2010-09-15T15:36:13.490 に答える
1

説明と Solr 分析ツールについて説明しているDebugging Search Application Relevance Issuesを読んでみてください。

于 2010-09-15T07:26:57.857 に答える
1

Solr に送信されたリクエストをデバッグするには、 tcpmonfiddlerなどの http リクエスト アナライザーをよく使用します。

于 2010-09-15T12:48:31.717 に答える
1

ログ レベルを FINEST に設定すると、ログ ファイルに正確なクエリが表示されます。

于 2011-06-28T23:35:59.367 に答える