【问题标题】:Solr boosting latest documents just not workingSolr 提升最新文档只是无法正常工作
【发布时间】:2014-04-06 06:26:38
【问题描述】:

我已经阅读了许多论坛并遵循了一些建议,但我无法让它发挥作用。我以相反的顺序得到结果,即尽管由非多值日期字段提升,但最旧的第一个。

架构中指定的字段

<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 的不同值,以防它在提升字段方面发挥任何作用。

我已经尝试了here 指定的所有查询。例如,

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;

实际上,ascdesc 我都试过了。很奇怪。为什么我仍然最后看到最新修改的文​​档,最先看到最旧的文档?我做错了什么?任何帮助表示赞赏!

【问题讨论】:

  • 如何查看索引的内容?当我使用solr查询时,每个文档中存储的日期是不同的。

标签: java search solr lucene solr-boost


【解决方案1】:

这不太可能为您提供 last_modified 的排序顺序

q=1234; last_modified asc;

也许你的意思是

q=1234&sort=last_modified desc

【讨论】:

  • 我都试过了。但订单仍然存在。例如,此订单始终保持 2014-03-04T04:07:16.515Z // 2014-03-04T04:07:21.677Z // 2014-03-04T04:07:22.433Z //
  • 我明白了。排序可能依赖于precisionStep。值越高,精度越低...您可能想尝试precisionStep="0" 看看它是否有效。注意precisionStep越小,索引越大lucene.apache.org/core/4_5_0/core/org/apache/lucene/search/…
  • 哦,好吧。我曾尝试使用精度为 0 的日期。但结果相同。你觉得存储日期的格式好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多