0

私の Solr の用途は、一次検索システムを生成することです。基本的には、大量のドキュメント セットを小さなバッチでフィードし、事前に指定されたクエリを検索します。これらのドキュメントはそれぞれ、この特定のクエリに対してスキャンされ、見つかった場合は、そのドキュメント内のその文字列のファイル インデックス ID、パス、およびヒット カウントをデータベースに保存する必要があります。各ドキュメントの solr からヒット カウント値を抽出する方法をオンラインで検索しましたが、これまでに理解したのは、Solr がヒット カウントやその他のさまざまな要因に基づいて結果を自動的に並べ替えるということだけです。ブーストと関数のクエリ パラメータ。

  1. Solr からヒット数を抽出する確立された方法はありますか?

  2. そうでない場合は、ヒット数のみを考慮するようにSolrのスコアリング式を変更し、Solrにスコアを返すように依頼することは可能ですか(この場合は本質的にヒット数になります)

私の質問が少し混乱しているように見えて申し訳ありません。データベースに保存できるように、各ドキュメントのSolrから返されるヒットカウントのみが必要です.solrを介して直接可能ですか?ヒットカウントとは、特定のキーワードを検索している場合、Solr インデックス内の各ドキュメントのインデックス フィールド内の出現回数。 )

SOLR 結果は、実際にはドキュメントの関連性スコアに基づいてソートされます。これには、用語の頻度やその他の多くの小さな要因が含まれます.... ヒット数だけが返されるようにしたい: 直接的なものがあるかどうか疑問に思っていましたヒット数を取得する方法、またはSolrがドキュメントをスコアリングする方法を変更して、用語の頻度係数に基づいてのみスコアリングし、SOLR出力の各ドキュメントの用語頻度の値を取得する方法

4

2 に答える 2

2

fl パラメータに疑似フィールドを追加するだけで、solr 4.0を使用するのは比較的簡単です。

q=*:*&fl=*,termfreq(field,term)

必要に応じて、戻り値に名前を付けることもできます。

q=*:*&fl=*,tf:termfreq(field,term)
于 2011-11-28T07:14:39.747 に答える
2

Solr からヒット カウント値を抽出できますか? ヒット数に基づいて結果をソートします

あなたの見出しのトピックは「ヒット カウント」に関するものですが、テキストを読むと、solr スコアに興味を持っていることがわかります。これは、デフォルトで solr がスコアでソートされるためです。

Solr からヒット数を抽出する確立された方法はありますか?

はい、検索されたドキュメントの「スコア」値を取得することは可能です (ちなみに、ヒット数を取得することも可能です)。

スコアを取得するには、単純に「フィールド リスト」パラメーター (fl) を「スコア」で展開します。 http://wiki.apache.org/solr/CommonQueryParameters#fl フィールド DOCUMENT,ID,PTAH がある場合の例 - 次のようにスコアを追加します: http://localhost:8080/solr/select/?fl=DOCUMENT,ID ,PTAH,スコア 例:

  <lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">5</int>
    <lst name="params">
    <str name="start">0</str>
    <str name="fl">DOCUMENT,ID,PTAH,score</str>
    </lst>
  </lst>

//アップデート:

いいえ。発生の

(キーワード)単語がインデックスに出現する頻度は? 特定のフィールドで?したがって、ファセット検索がカウントされます: http://wiki.apache.org/solr/SolrFacetingOverview

//更新 2:

2 回目の更新 - ドキュメント ID とこのドキュメントの単語数を取得するために、1 つのドキュメント内のキーワードの数をカウントしたい場合は、ファセット範囲クエリ範囲と組み合わせてファセット検索を使用できます。例: メーカー「dell」のすべてのドキュメントを見て、すべてのドキュメント (ID) についてこのキーワードの頻度を返します。

ID -> "dell" exits how many times?
241 -> 2
242 -> 0
243 -> 5

これには、次の検索パラメーターを使用します。

<str name="facet.field">YOUR_TEXTFIELD</str>
<str name="facet.range">ID</str>        <--- ID=field woth the document ID
<str name="f.ID.facet.range.gap">1</str> <--- count ID in step of 1
<str name="f.ID.facet.range.start">0</str>   <--- start ID for faceted search
<str name="q">dell</str>                   <---string, "keyword" to look/count for
<str name="f.ID.facet.range.end">1000</str> <--- end ID for faceted search
<str name="facet">true</str>
<str name="facet.method">enum</str>
于 2011-06-28T09:44:09.967 に答える