[英]"int" value changes after inserting in Solr
我将 solr 架构定义为:
<schema name="mysolrcore_01" version="1.6">
<fieldType name="string" class="solr.StrField" />
<fieldType name="text" class="solr.TextField" />
<fieldType name="long" class="solr.LongPointField" />
<fieldType name="int" class="solr.IntPointField" />
<uniqueKey>id</uniqueKey>
<uniqueKey>item_key</uniqueKey>
<field name="_version_" type="long" indexed="true" stored="true" multiValued="false" />
<field name="_root_" type="string" indexed="true" stored="false" />
<field name="id" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="sqlid" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="mongoid" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="item_lang" type="string" indexed="false" stored="true" required="true" multiValued="false" />
<!-- Field "published" to be noted. I intend to store an UNIX timestamp here. -->
<field name="published" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="item_key" type="string" indexed="true" stored="true" required="true" />
<field name="content_en" type="text" indexed="true" stored="false" />
</schema>
一切正常,直到我尝试插入此文档:
{
"sqlid":99,
"mongoid":"63c69aa7dc7c000062000267",
"item_key":"inferno",
"item_lang":"en",
"published":-2347142400
"content_en":"Some content",
}
但这是 solr 实际插入的内容(请注意,“已发布”字段填充的是 1947824896 而不是 -2347142400):
{
"sqlid":99,
"mongoid":"63c69aa7dc7c000062000267",
"item_key":"inferno",
"item_lang":"en",
"published":1947824896,
"id":"b818cfe9-f84a-4c08-a9c0-cea988b0c437",
"_version_":1755274390346399744
}
以前插入了两个包含正面和负面条目的文档published 。 在这种情况下出了什么问题?
感谢您的阅读和思考。
根据 qna 为什么值在 Apache solr 中发生了变化? 以及对这个 qna 的评论,如果你需要存储一个大的 integer,请改用long
。
这个 qna 解释了这一点: 为什么浮点数不准确?
所以我将类型从int
更改为long
,它正在工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.