我们有一个用例,我们从远程 solr 实例启动嵌入式 solr 服务器(使用 SolrJ EmbeddedSolrServer api)。这样我们就可以在查询管道中极快地提供文档。
我遇到的问题之一是确定自上次同步完成以来远程 solr 实例是否已以任何方式进行了修改。显然,一种简单的方法是比较文档。一次一个。然而,这将是极其低效的,并且完全否定了快速的全部目的。
感谢您的任何提示或建议。
最佳答案
Lucene 索引的每个版本都分配有一个版本号。此版本号为exposed through the Replication Handler (您可能已经在使用它来将索引复制到本地嵌入式 Solr 实例):
http://host:port/solr/core_name/replication?command=indexversion
Returns the version of the latest replicatable index on the specified master or slave.
如果您想更手动地执行此操作,可以使用自动添加到最新版本 Solr 中所有文档的 _version_
字段,并使用它来获取任何 _version_
code> 值大于索引中当前最大版本。这假设您使用默认的 _version_
编号(您必须这样做,因为它也在 Solr Cloud 内部使用)。
关于solr - 如何判断 Solr 的索引是否已更改,包括文档的任何修改、添加或删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52917884/