加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Solr – 具有默认值的字段如果存储= false则重置自身

发布时间:2020-12-15 04:14:24 所属栏目:Java 来源:网络整理
导读:当我将一个字段设置为stored = false并给它一个默认值时,我遇到了Solr(4.x)的奇怪问题.为了使一切清楚,我的架构是这样的: field name="field1" type="tint" indexed="true" stored="true" /field name="field2" type="tint" indexed="true" stored="true" /
当我将一个字段设置为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存储= true时,那么没有问题,它们永远不会回到默认值,尽管该字段没有更新……

任何克服这一点的解决方案我当然可以保持字段存储= true然后它会导致索引变大,从而因为开销而减慢搜索速度…

解决方法

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

我不担心索引设计的这个阶段的性能,特别是如果它是数字.您可以在以后使用各种优化,瓶颈可能不是您期望的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读