我已经阅读了许多论坛并遵循了一些建议,但我无法让它发挥作用。我以相反的顺序得到结果,即尽管由非多值日期字段提升,但最旧的第一个。
架构中指定的字段
<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
。很奇怪。为什么我仍然最后看到最新修改的文档,最先看到最旧的文档?我做错了什么?任何帮助表示赞赏!