gpt4 book ai didi

java - Solr - 如果 stored=false,则具有默认值的字段会自行重置

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:47 28 4
gpt4 key购买 nike

当我将字段设置为 stored=false 并为其指定默认值时,Solr (4.x) 出现了一个奇怪的问题。为了让一切都清楚,我的模式是这样的:

<field name="field1" type="tint" indexed="true" stored="true" />
<field name="field2" type="tint" indexed="true" stored="true" />
<field name="field3" type="tint" indexed="true" stored="true" />
<field name="field4" type="tint" indexed="true" stored="true" />
<field name="field5" type="tint" indexed="true" stored="false" default="0" />

默认情况下,每个文档的开头都有一个 field5=0。然后我更新文档,并为某些文档设置 field5=1。如果我更新包含 field5=1 的文档,它们都会返回到 field5=0。但是当 field5 被存储为真时,就没有问题了,它们永远不会回到默认值,尽管那个字段没有更新......

有什么办法可以解决这个问题?我当然可以保留该字段 stored=true ,但它会导致索引变大,因此由于开销而减慢搜索速度......

最佳答案

在幕后,更新操作检索字段的存储 值并重新索引整个新实体。因此,如果该字段未标记为已存储,则不能将其用于原子更新。通常,未存储的字段会消失,与默认值的相互作用是不寻常的。

在索引设计的这个阶段,我不会担心性能,尤其是对于数字而言。您可以在以后使用的幕后进行各种优化,瓶颈可能不在您预期的位置。

关于java - Solr - 如果 stored=false,则具有默认值的字段会自行重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19285251/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com