結果が solr からソートされて返される方法についての要件があります。高レベルでは、次のようになります。
- 日付でソートされたsubset1フィールドの完全一致
- 日付でソートされたsubset2フィールドの完全一致
- 日付でソートされたsubset1フィールドの部分一致
- 日付でソートされたsubset2フィールドの部分一致
- 日付でソートされたsubset1フィールドのあいまい一致
- 日付でソートされたサブセット 2 フィールドのあいまい一致
現在、solrスコアと日付でソートしています。solr をクエリするとき、古いドキュメントに逆ブーストを与えるブースト関数を使用しているため、古いドキュメントは下に移動し、新しいドキュメントも一番上に「フロート」します。適切なフィールドをブーストして、正確、部分的、およびあいまい一致は正しい順序で行われます。これは私をそこに連れて行きました。
トリッキーな部分です。この要件は、「red ford truck」のようなものを検索した場合、用語の頻度に関係なく、「red ford truck」を含むドキュメントは同じスコアを付けられるべきであると述べています。新しいドキュメントを一番上に押し上げても、用語の頻度が高いドキュメントを十分に押し下げるほどスコアには影響しません。
たとえば、2 つのドキュメントがあるとします: doc 1:
- Field1:「赤いフォード トラックは本当に赤く、速いトラックでした」
- 日付: 2010 年 1 月 1 日
ドキュメント 2:
- フィールド 1:「赤いフォード トラックが路上に駐車されていた」
- 日付:2012/10/1
「レッド フォード トラック」を検索すると、ドキュメント 2 が最初に表示されます。これは、ドキュメント 2 の方が新しく、クエリされた用語がすべて含まれているためです。現在、ドキュメント 1 が最初に表示されます。これは、Field1 に一致するものが多く、逆ブーストがそれを押し下げるのに十分ではないためです。
それでは、私の質問に対して、solr には、ドキュメントに対してクエリされた用語を 1 回だけ一致させるように指示する構成ポイントがありますか? T-SQL の Exists のようなものです。
他に役立つ情報があればお知らせください。お時間をいただきありがとうございます。