2

SolrNet を使用する ASP.NET アプリケーションで Solr を使用しています。

私のインデックスには、さまざまな長さのタイトル フィールドと説明フィールドを持つドキュメントがあります。これは通常、パラメーターを介して各フィールドに異なるブーストが適用された dismax ハンドラーを使用して照会されbqます。(is_curated:true^100 OR is_curated:false^0) (title:foo^50) (description:bar^30).

検索語が指定されていない場合 (パラメーター*:*を介してデフォルトの検索語が指定されている場合)、検索結果での短いタイトルと説明のドキュメントをあまり目立たなくしたいと考えています。q.alt

そのため、ユーザーが「apples」を検索した場合、ブーストは正常に機能し、一致する短いタイトルと説明を持つドキュメントはより大きく重み付けされる必要がありますが、検索用語が指定されていない場合は、短いタイトルと説明を持つドキュメントがより大きく重み付けされる必要があります。重み付けが少なくなります。

Solr クエリは、必ずしも空でないクエリを考慮する必要はありません。C# コードからこのチェックを実行し、クエリが空の場合に短いフィールドの重みを減らすために使用される追加のパラメーターのみを追加できるためです。

おそらく、ブースト パラメーターとして何らかの FunctionQuery を使用する必要がありますが、これを実現する方法についてのアドバイスをいただければ幸いです。ありがとう。

4

1 に答える 1

2

Solr は、スコアを計算するときにフィールドの長さを考慮します。

lengthNorm - 小さいフィールドでの一致は、大きいフィールドでの一致よりもスコアが高くなります

類似性クラスをカスタマイズして、動作をオーバーライドできます。

于 2012-06-15T17:36:56.727 に答える