为什么Solr节点查询给出错误的文档版本编号



我正在使用solr 7.6。在执行搜索查询时,Solr给出了文档的错误版本字段,但所有其他字段都是正确的。

在solr仪表板中查询给出以下结果:

{
        "id":"518fce46-3617-4380-aaf6-8f6d36e08e6a",
        "type":"tag",
        "count":1,
        "_version_":1626999925241806848
}

,而solr节点搜索功能给出:

{
         "id": "518fce46-3617-4380-aaf6-8f6d36e08e6a",
         "type": "tag",
         "count": 1,
         "_version_": 1626999925241806800
}

初始猜测是solr节点模块将值返回为double(而不是作为字符串),而双重的精度不足以表示值1626999925241806848正是。

我们可以在浏览器的控制台中直接确认:

-> 1626999925241806848
<- 1626999925241806800

即。如果我们输入数字值1626999925241806848,则将由最接近的浮点数表示,即1626999925241806800

solr节点超过ints的代表值时,可能应将这些值返回。

update :solr节点详细信息在其概述页面:

使用json-bigint正确处理太大的javascript号码,例如字段 *l和_ version的值。默认情况下,没有使用JSON-BIGINT库,因为与本机JSON库相比,JSON的"大块"(https://github.com/lbdremy/solr-node-client/issues/114#ISSUECOMMENT-54165595),但是如果您使用Solr 4.X中可用的乐观协议功能以及实时获取和原子质更新功能,则要启用它,因为它们使用 version field。为了启用其执行var client = solr.createClient({ bigint : true})或直接在客户端实例上client.options.bigint = true

最新更新