0

3 つのパラメーターを使用して Solr クエリを実行し、パラメーターの組み合わせとの関連性ではなく、パラメーターの 1 つとの関連性によって結果を並べ替えたいと考えています。

例:

SolrQuery solrQuery = new SolrQuery();
solrQuery.add("title", "some title");
solrQuery.add("date", "some date");
solrQuery.add("description", "some description");

solrQuery.addSortField("score", SolrQuery.ORDER.desc);

クエリの結果は、タイトル + 日付 + 説明の組み合わせとの関連性によって並べ替えられますが、タイトルのみでスコアを付ける必要があります。

どうすればできますか?

PS私はSolr 4.0 BETAを使用しています

4

2 に答える 2

3

関連性を 1 つのフィールドでのみスコアリングしているため、検索を「qf」クエリ フィールドのその 1 つのフィールドに制限できます。

solrconfig.xml の既存の requestHandler を編集または追加する

<requestHandler name="/relevant_by_one_field" class="solr.SearchHandler">
   <lst name="defaults">
      <str name="defType">edismax</str>
      <str name="qf">title</str>
   </lst>
</requestHandler>

'qf' パラメーターで特定のブーストを指定することもできますが、単一のクエリ フィールドの場合、ブーストは他のフィールドのコンテキストでのみ関連するため、ブーストは何もしません。

複数のフィールドを検索し、'title' で見つかった結果に最高のスコアを付ける例を次に示します。

<requestHandler name="/relevant_by_multiple_field" class="solr.SearchHandler">
   <lst name="defaults">
      <str name="defType">edismax</str>
      <str name="qf">title^2 description^0.7 date^0.5</str>
   </lst>
</requestHandler>
于 2012-11-13T03:28:33.523 に答える
2

Score には、おそらく選択的な並べ替えオプションはありません。
ただし、フィールドの日付と説明からのスコアが影響を与えないように、タイトルに一致する結果を非常に高い値に引き上げることができます。
したがって、スコアで並べ替えると、結果がタイトルで並べ替えられます。

于 2012-11-12T10:51:08.690 に答える