0

Solrにインデックス付けされた多くのドキュメントがあります。私は今、検索結果をそれらに基づいてソートして返す必要があるという要件に直面していますscores完全に一致しない場合、同点の場合は、と呼ばれるフィールドに別のレベルの並べ替えが適用されpriorityます。

django1.4でdjango-haystackでsolrを使用しています。

要件を達成するために何ができますか/すべきですか?

4

2 に答える 2

1

edismaxのブーストはこれに使用できます。すべてのスコアに適用されますが、値が小さい場合は、同点または同点に近い場合にのみ違いが生じます。基本スコアの有意差は並べ替えられません。

参照:http ://wiki.apache.org/solr/ExtendedDisMax#boost_.28Boost_Function.2C_multiplicative.29

于 2012-10-15T15:16:51.460 に答える
0

私はdjangoまたはdjango-haystackの知識がありませんが、solrで二次ソートが必要な場合は、コンマ区切りのリストとして複数のソートを指定するだけです。例...

score desc, priority desc

...ドキュメントをスコアで並べ替え、2つのドキュメントのスコアが同じ場合は、優先度フィールドで並べ替えます。

ただし、これはスコア値がまったく同じものの2次ソートのみを提供することに注意してください。代わりに、優先度フィールドでドキュメントのスコアを「ブースト」する(つまり、ソート前に実際にスコアに影響を与える)ことができます。 。

于 2012-10-15T22:02:13.590 に答える