栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

elasticsearch滚动行为

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

elasticsearch滚动行为

我将尝试就此提供一些信息,因为我最近也对此进行了一些研究:

如果偏移量已经存在,那么为什么要使用滚动?

我不确定是否可以结合使用滚动和偏移量。但是我相信主要的区别是偏移查询将为您提供“假”结果。如果为False,它将正确执行查询,但是请考虑介于两者之间的所有更新。在重新索引方面,这将是错误的,因为您可能会丢失数据。想象一下,您对10k个结果进行了偏移量查询,然后花费2分钟来处理它。您可能会在2分钟内更新对象(或插入内容)。这意味着将查询偏移10k可能最终指向跳过中间几行的结果,或者指向已经存在的结果(想象之间的删除)。但是,Scroll保证保持搜索上下文有效,并以清晰,严格的方式返回结果,其中不考虑任何更新。

我想,所需的行为可以用一个恒定的分选+作为记录在这里搜索后实施:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-
request-search-
after.html

这应该可以使结果稳定(光标指向正确的偏移量),但是仍会考虑2个请求之间发生的所有更改(我认为)。

我想通过更改配置(例如logstash)开始将正确的文档插入新索引,然后滚动所有旧数据以将其重新索引到新索引中,从而可以进行重新索引。通过使用滚动,您仍然可以使用旧数据,而更改不会影响您的重新索引操作。

文件:

当搜索请求返回单个“页面”结果时,滚动API可用于从单个搜索请求中检索大量结果(甚至所有结果),其方式与在游标上使用光标的方式几乎相同传统数据库。

接下来:

那即将到来的记录呢?假设它完成了所有数据的滚动,然后几秒钟后新数据进入了索引,那么它将如何工作?它还会滚动以获取新记录,例如流媒体吗?

滚动将保留在第一个滚动请求上创建的结果。这是通过拍摄快照并防止将更改发布到特定滚动条来完成的。文件:

从滚动请求返回的结果反映了发出初始搜索请求时的索引状态,如时间快照。对文档的后续更改(索引,更新或删除)只会影响以后的搜索请求。

第三:

假设由于服务器负载或Internet问题导致连接断开,那么它将从头开始滚动数据吗?

没关系。Scroll带有一个

POST/twitter/tweet/_search?scroll=1m
分配,例如,赋值
1m
指示elasticsearch在ES服务器上保持搜索上下文有效的时间。这意味着,如果您的连接中断,您要做的就是拿起您的滚动ID并使用它创建一个新的请求。ES会将该ID与现有搜索上下文匹配,并为您提供预期的结果。文件:

为了使用滚动,初始搜索请求应在查询字符串中指定scroll参数,该参数告诉Elasticsearch它应将“搜索上下文”保持活动状态的时间(请参见使搜索上下文保持活动状态),例如?scroll
= 1m。

通常,所有这些信息都可以在这里找到:https :
//www.elastic.co/guide/en/elasticsearch/reference/current/search-request-
scroll.html

希望这可以帮助,

阿图尔



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号