如何在 Solr 中获取最后一个索引记录?
Posted
技术标签:
【中文标题】如何在 Solr 中获取最后一个索引记录?【英文标题】:How to get last indexed record in Solr? 【发布时间】:2012-09-02 23:57:12 【问题描述】:我想知道如何在 Apache Solr 中获取/搜索最后的索引记录..?
当现有记录被更新时,它会走到所有记录的末尾...所以我想获取最后一条索引记录。
谢谢..
【问题讨论】:
【参考方案1】:您可以在 Solr 架构中添加一个“时间戳”字段,以便在添加时将当前日期/时间放入记录中。
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
然后,对该字段进行降序排序,第一条记录将是最新的。像这样的查询应该这样做:-
http://localhost:8080/solr/core-name/select/q=*%3A*&start=0&rows=1&sort=timestamp+desc
【讨论】:
没有别的办法吗...?因为我必须在 Solr 索引中添加字段...感谢您的回复... 我相信这是最可靠的方法,因为时间戳字段将由 Solr 添加并保证准确。您可以使用@parvin 的答案,但这会假设您的 docid 字段是连续的并且可以排序。【参考方案2】:您可以使用以下查询按索引顺序对文档进行排序。
http://localhost:8983/solr/select?q=*:*&sort=_docid_ asc
or
http://localhost:8983/solr/select?q=*:*&sort=_docid_ desc
【讨论】:
谢谢,这正是我需要的。 依赖 docid 交叉合并是否安全?见osdir.com/ml/solr-user.lucene.apache.org/2011-12/msg01178.html 不要使用 docid 因为它会改变看到响应以理解 lucene.472066.n3.nabble.com/… 对我来说,这不是获得期望结果的最佳方式:q*:*
告诉 solr 搜索索引中的每条记录。就我而言,存储了超过 3000 万条记录,即使我添加了rows=1
,响应也需要大约 10 秒才能返回。有没有获取最后一条记录的有效方法?以上是关于如何在 Solr 中获取最后一个索引记录?的主要内容,如果未能解决你的问题,请参考以下文章