热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

有效地获取弹性搜索索引中的所有文档

如何解决《有效地获取弹性搜索索引中的所有文档》经验,为你挑选了1个好方法。

我想从elasticsearch集群中的全匹配查询中获取所有结果.我不在乎结果是否是最新的,我不关心订单,我只想稳定地继续检查所有结果,然后在开始时重新开始.滚动和扫描是最好的,这似乎有点受欢迎拍摄我不需要的快照.我将关注处理数百万份文档.



1> Nick Zadrozn..:

弹性搜索查询的一些重复,以返回所有记录.但我们可以添加更多细节来解决开销问题.(即,"我不需要拍摄快照似乎有点受欢迎.")

一个滚动扫描搜索,绝对是你在这种情况下,想要的东西."快照"在这里不是很多开销.该文档将其描述为" 时间快照"(强调添加).实际的实现细节有点微妙,而且非常聪明.

稍后将在文档中进行更详细的说明:

通常,后台合并过程通过将较小的段合并在一起来创建新的更大的段来优化索引,此时删除较小的段.此过程在滚动期间继续,但打开的搜索上下文可防止旧片段在仍在使用时被删除.这就是Elasticsearch能够返回初始搜索请求的结果,无论后续的文档更改如何.

因此上下文保持廉价的原因在于Lucene索引段的行为方式.Lucene索引被划分为多个段,每个段都像一个独立的迷你索引.随着文档的添加(和更新),Lucene只需在索引中添加一个新段.细分是一次性写入:创建后,它们永远不会再次更新.

随着时间的推移,随着细分市场的积累,Lucene将定期在后台进行一些内务管理.它扫描段并合并段以刷新已删除和过时的信息,最终合并为更小的更新和更新的段.随着较新的合并细分市场取代旧细分市场,Lucene将逐步删除整个索引不再使用的任何细分市场.

这种分段索引设计是Lucene比简单B树更高性能和更有弹性的原因之一.从长远来看,连续追加段比直接在磁盘上更新文件的累积IO更便宜.此外,一次写入设计还具有其他有用的属性.

Elasticsearch在此处使用的类似快照的行为是维护对滚动搜索开始时活动的所有段的引用.因此开销很小:一些文件引用了一些文件.另外,也许是磁盘上这些文件的大小,因为索引会随着时间的推移而更新.

如果磁盘空间是服务器上的一个严重问题,这可能是一个昂贵的开销.可以想象,当滚动搜索上下文处于活动状态时索引快速更新可能会使索引所需的磁盘大小增加一倍.为此,确保您拥有足够的容量以使索引可能增长到预期大小的2-3倍是有帮助的.


推荐阅读
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • ES基本原理名词解释In-memorybuffer:ES内存缓冲区,新建的document写入的地方document:索引和搜索的 ... [详细]
  • mysql+全文检索设计,基于sphinx+mysql全文检索架构设计.doc
    基于sphinxmysql全文检索架构设计.doc还剩2页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧& ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 人人租机作为国内领先的信用免押租赁平台,为企业和个人提供全方位的新租赁服务。通过接入支付宝小程序功能,该平台实现了从零到百的迅猛增长,成为全国首家推出“新租赁小程序”开发服务的阿里巴巴小程序服务商(ISV)。这一创新举措不仅提升了用户体验,还显著增强了平台的市场竞争力。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • Elasticsearch 嵌套调用中动态类导致数据返回异常分析与解决方案 ... [详细]
  • 「驭龙」开源主机入侵检测系统了解一下
    「驭龙」开源主机入侵检测系统了解一下 ... [详细]
  • es的分布式原理?es是如何实现分布式的?
    Elasticsearch设计的理念是分布式搜索引擎,底层其实是基于lucene。核心思 ... [详细]
  • 一:什么是solrSolr是apache下的一个开源项目,使用Java基于lucene开发的全文搜索服务器;Lucene是一个开放源代 ... [详细]
  • 操作系统如何通过进程控制块管理进程
    本文详细介绍了操作系统如何通过进程控制块(PCB)来管理和控制进程。PCB是操作系统感知进程存在的重要数据结构,包含了进程的标识符、状态、资源清单等关键信息。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 第十三章go实现分布式网络爬虫单机版爬虫
     网络爬虫分为两类1.通用爬虫:类似于baidu,google.他们会把大量的数据挖下来,保存到自己的服务器上.用户打开跳转的时候,其实先是跳转到他们自己的服务器. 2.聚焦爬虫: ... [详细]
author-avatar
张小虎要努力
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有