多くのフォーラムを読み、いくつかの提案に従いましたが、これを機能させることができません。逆の順序で結果を取得します。つまり、非多値日付フィールドによるブーストにもかかわらず、最も古いものを最初に取得します。
スキーマで指定されたフィールド
<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
ます。かなり奇妙。最後に変更されたドキュメントが最後に表示され、最も古いドキュメントが最初に表示されるのはなぜですか? 私が間違っていることは何ですか?どんな助けでも大歓迎です!