首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未编入索引的字段的部分更新

未编入索引的字段的部分更新
EN

Stack Overflow用户
提问于 2015-03-09 08:42:14
回答 1查看 3.3K关注 0票数 2

让我们考虑以下情况--在“文章”文档(String)和视图(Int)中有两个字段。视图字段未编入索引。视图字段包含这篇文章被读了多少次的信息。

官方医生

我们还说,文件是不可改变的:它们不能改变,只能被取代。更新API必须遵守相同的规则。从外部看,我们似乎是在部分地更新一个文档。然而,在内部,更新API只是管理我们已经描述过的相同的检索-更改-再索引过程。

但是,如果我们对非索引字段进行分区更新-- elasticsearch会重新索引整个文档吗?例如,我想在每次有人阅读某篇文章时更新视图。如果将整个文档重新编入索引,则无法进行实时更新(因为操作太重)。因此,我将不得不延迟工作,例如,更新所有的文章,访问者已阅读每3-5-10分钟。还是我理解错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-09 09:54:29

,但是如果我们对未编入索引的字段进行分区更新-- elasticsearch会重新索引整个文档吗?

是的,虽然views字段不是单独索引的,但它是_source字段的一部分。_source字段包含在文档索引时发送给Elasticsearch的原始JSON,如果在搜索过程中文档上有匹配,则返回结果。_source字段使用Lucene中的文档进行索引。在您的更新脚本中,您将更改_source字段,以便重新编制整个文档的索引。

然后,可以评估以下策略。每次有人读到这篇文章时,我都会把更新发送给弹性。但是,refresh_interval我设置为30秒。如果在30秒内大约有1000个用户读过一篇文章,这种策略是否正常?

您仍在编制1000个文档的索引,1个文档将被索引为当前文档,999个文档将被标记为已删除,并在下一个Lucene合并期间从索引中删除。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28937946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档