schema.xml には次の設定があります。
<field name="last_modified" type="date" indexed="true" stored="true" multiValued="false" omitTermFreqAndPositions="true"/>
...
<field name="prefix" type="string" indexed="true" stored="true" omitTermFreqAndPositions="true"/>
私たちの目標は、ドキュメントを並べ替えることです
- prefix=9999 最新のドキュメント (最終更新日) が最初
- prefix=1004 または prefix=1005 で、最新のドキュメント (最終更新日) が最初
私たちのコード:
{!boost b=recip(ms(NOW,last_modified),3.16e11,1,1)}prefix:9999^1000000 OR {!boost b=recip(ms(NOW,last_modified),3.16e-11,1,1)}prefix:1004^600000 OR {!boost b=recip(ms(NOW,last_modified),3.16e-11,1,1)}prefix:1005^600000
結果: 上記のクエリは期待どおりに機能しません!
omitTermFreqAndPositions=true は強制的に ITF を防止し、スコアリングが機能するはずだと考えました。しかし、そうではないようです!これで私たちを助けてください:-)