笔者在实际生产环境中经常遇到一些大文件的检索,例如一些书籍内容,PDF文件等.今天这篇博客主要来探讨下如何提升ES在检索大文件的一些性能,经验有限,算是一个小小的总结吧! 1.大文件是多大? ES建立索引完成全文检索的前提是将待检索的信息导入Elaticsearch. 项目中,有时候需要将一些扫描件.PDF文档.Word.Excel.PPT等文档内容导入Elasticsearch. 比如:将<深入理解Elasticsearch>这边书导入ES,而这边书的全文内容被识别后的大小可能为3MB…
ElasticSearch中的JVM性能调优 前一段时间被人问了个问题:在使用ES的过程中有没有做过什么JVM调优措施? 在我搭建ES集群过程中,参照important-settings官方文档来的,并没有对JVM参数做过多的调整.但谈到JVM配置参数,少不了操作系统层面上的一些配置参数,比如 page cache 和文件描述符的个数:(/etc/security/limits.conf).另外ES jvm.options配置文件也针对JVM参数做了一些优化,这里简要介绍一下ElasticSea…
背景 项目中一直用element-ui,之前用el-table的时候,发现表格数据较多时,滑动表格就会很卡.我们的表格中只有200行数据,每行大概有30的字段,表格滑动就卡的不行.在Element-ui 2.8.0版本中,对表格性能进行了优化,链接.短短只有几行代码,却解决了表格的性能问题,今天我们来深度剖析,具体是怎么做到的. 先看改变的代码 代码很简单,增加了一个watch,watch中给当前hover的dom增加"hover-row' class,之前的dom移除'hover-row'.并…
本文的来源是我翻译国外的一篇技术博客,感谢原作者Emily Chang,原文地址通过如下的知识,我们能大致学到关于ES的一些基本知识,进而对elasticsearch的性能进行监控和调优 注意elasticsearch的版本不同,此处的描述可能会有稍许偏差 一.Elasticsearch 是什么 Elasticsearch是一款用Java编写的开源分布式文档存储和搜索引擎,可以用于near real-time存储和数据检索. 1. Elasticsearch简要组成 在开始探索性能指标之前,让我…
在本文中,主要是ES7中的核心概念. ElasticSearch是一个实时分布式开源全文搜索和分析引擎.它可以从RESTful网络服务接口访问,并使用无模式JSON (JavaScript对象符号)文档来存储数据.它建立在Java编程语言之上,使ElasticSearch能够在不同的平台上运行.它使用户能够以非常高的速度浏览非常大量的数据. 1.ElasticSearch的特点 ElasticSearch最多可扩展到千兆字节的结构化和非结构化数据. ElasticSearch可以用来替代像Mon…
ElasticSearch搜索使用的是倒排索引,但是排序.聚合等不适合倒排索引使用的是正向索引 倒排索引 倒排索引表以字或词为关键字进行索引,表中关键字所对应的记录项记录了出现这个字或词的所有文档,每个字段记录该文档的ID和关键字在该文档中出现的位置情况. 倒排表的结构图如图2: 如下就是倒排索引,对语句进行分词,按照单位进行索引 由于每个字或词对应的文档数量在动态变化,所以倒排表的建立和维护都较为复杂,但是一旦完成创建,在查询的时候由于可以一次得到查询关键字所对应的所有文档 例如查询hello…
Elasticsearch文档CRUD要牢记 转载参考:https://juejin.im/post/5ddbf298e51d4523053c42e7 在Elasticsearch中,文档(document)是所有可搜索数据的最小单位.它被序列化成JSON存储在Elasticsearch中.每个文档都会有一个唯一ID,这个ID你可以自己指定或者交给Elasticsearch自动生成. 如果延续我们之前不恰当的对比RDMS的话,我认为文档可以类比成关系型数据库中的表. 元数据 前面我们提到,每个文…
目录 前言 为什么全文索引不使用 B+ 树进行存储 全文检索 正排索引 倒排索引 倒排索引如何存储数据 FOR 压缩 RBM 压缩 倒排索引如何存储 字典树(Tria Tree) FST FSM 构建 FST 总结 前言 索引可能大家都不陌生,在用关系型数据库时,一些频繁用作查询条件的字段我们都会去建立索引来提升查询效率.在关系型数据库中,我们一般都采用 B 树索引进行存储,所以 B 树索引也是我们接触比较多的一种索引数据结构,然而在 es 中,进行全文搜索的时候却并没有选择使用 B 树 索引,…
首先,我们来看下一下如下的这个图: Cluster Cluster也就是集群的意思.Elasticsearch集群由一个或多个节点组成,可通过其集群名称进行标识.通常这个Cluster 的名字是可以在Elasticsearch里的配置文件中设置的.在默认的情况下,如我们的Elasticsearch已经开始运行,那么它会自动生成一个叫做"elasticsearch"的集群.我们可以在config/elasticsearch.yml里定制我们的集群的名字 一个Elasticsearch的集…
在VMware虚拟机(VMware Workstation或VMware Server)中我们可以同时运行多个Guest OS,当同时在同一Host OS中运行多台虚拟机时势必会严重影响到Host OS的运行效率和性能.那么我们如何对虚拟机进行优化以达到最佳的资源利用率呢?在本文中碎片同学将向大家介绍10种目前通行的做法. 10.安装VMware Tools 在Windows或Linux虚拟机中安装完VMware Tools 后将会在很大程度上提升虚拟机的性能.首先,我们可以使用SVGA分辨率而…