0

多くのフォーラムを読み、いくつかの提案に従いましたが、これを機能させることができません。逆の順序で結果を取得します。つまり、非多値日付フィールドによるブーストにもかかわらず、最も古いものを最初に取得します。

スキーマで指定されたフィールド

<field name="last_modified" type="tdate" indexed="true" stored="true" multiValued="false"/>

<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>

フィールドを後押しするのに何らかの役割を果たす場合に備えてomitNorms、さまざまな値を使用して、使用せずに試しました。precisionStep

ここで指定されたすべてのクエリを試しました。例えば、

http://localhost:8983/solr/select?q={!boost b=$dateboost v=$qq}&dateboost=recip(ms(NOW,last_modified),3.16e-11,1,1)&qq=1234

さらに、私は試しました

defType=dismax&bf=recip(rord(last_modified),1,1000,1000)^2.5&q=1234

また、関連性スコアを破棄する単純な並べ替えも行います。

q=1234; last_modified asc;

実際、私は と の両方を試しascていdescます。かなり奇妙。最後に変更されたドキュメントが最後に表示され、最も古いドキュメントが最初に表示されるのはなぜですか? 私が間違っていることは何ですか?どんな助けでも大歓迎です!

4

1 に答える 1

0

これにより、last_modified の並べ替え順序が得られる可能性は低いです

q=1234; last_modified asc;

おそらくあなたが意味した

q=1234&sort=last_modified desc
于 2014-03-04T17:09:20.100 に答える