1

文字列について複数のフィールドをクエリする場合、クエリ用語が見つかったフィールドの情報を取得することはできますか?

説明、情報、追加情報を照会したい...しかし、さまざまなレイアウトを提供したいので、どのフィールドが結果をもたらしたかを知る必要があります。

4

1 に答える 1

1

Luceneの方法:を見てくださいIndexSearcher.explain(...)。これにより、に対してどのようにスコアリングされたExplanationかを説明するが得られます。docquery

Solrの方法:を追加し&debugQuery=trueます。collection:61私はこのドキュメントを照会して入手しました:

<doc>
  <str name="collection">61</str>
  ...other fields...
  <long name="uuid">1111</long>
</doc>

そして、以下はこれです

<lst name="explain">
  <str name="1111">
     0.882217 = (MATCH) fieldWeight(collection:61 in 0), product of: 1.0 =
     tf(termFreq(collection:61)=1) 0.882217 = idf(docFreq=8, maxDocs=8) 1.0 =
     fieldNorm(field=collection, doc=0)
  </str>
  ...
 </lst>

上記は基本的に、アイテム1111collectionに値のフィールドがあったことを示しています61debug.explain.structuredこの説明文字列をより構造化された形式で取得するように要求することもできます。

于 2012-12-06T17:22:58.973 に答える