随笔分类 - ELK Stack
摘要:Elasticsearch提供了replica解决方案,它可以帮我们解决了如果有一个或多个node失败了,那么我们的数据还是可以保证完整的情况,并且搜索还可以继续进行。但是,有一种情况是我们的所有的node,或者有一部分node失败,可能会造成我们的数据的丢失。也就是说replca不能提供一种灾难性
阅读全文
摘要:聚合(aggregation)功能集是整个Elasticsearch产品中最令人兴奋和有益的功能之一,主要是因为它提供了一个非常有吸引力对之前的facets的替代。 在本教程中,我们将解释Elasticsearch中的聚合(aggregation)并逐步介绍一些示例。 我们比较了指标聚合和存储桶聚合
阅读全文
摘要:在今天的文章里,我们将介绍Elastic的一个重要的应用:应用程序性能管理(Application Performance Monitoring/Management),简称APM。那么到底什么是APM呢? 随着时代的发展,我们的IT架构越来越复杂,比如: 我们系统的服务器越来越多,而且更多的设备都
阅读全文
摘要:Elastic Stack的组件是不安全的,因为它没有内置的固有安全性。 这意味着任何人都可以访问它。 在生产环境中运行Elastic Stack时,这会带来安全风险。 为了防止生产中未经授权的访问,采用了不同的机制来施加安全性,例如在防火墙后运行Elastic Stack并通过反向代理(例如ngi
阅读全文
摘要:在本文中,我们将重点关注significant terms和significant text聚合。这些聚合旨在搜索数据集中有趣和/或不寻常的术语,这些术语可以告诉您有关数据的隐藏属性的更多信息。此功能对于以下用例特别有用: 为用户查询标识包含同义词,首字母缩略词等的相关文档。例如,当用户搜索H1N1
阅读全文
摘要:Elastic Stack是一套完整的从数据采集,解析,分析,丰富,到搜索,检索,数据程序等一套完整的软件栈。在具体的实践中,我们应该如何搭建我们的系统呢? 下图描述了常用的Elastic Stack的部署架构: 该图描述了三种可能的体系结构: 将操作指标直接发送到Elasticsearch:如上图
阅读全文
摘要:Smart Chinese Analysis插件将Lucene的Smart Chinese分析模块集成到Elasticsearch中,用于分析中文或中英文混合文本。 支持的分析器在大型训练语料库上使用基于隐马尔可夫(Markov)模型的概率知识来查找简体中文文本的最佳分词。 它使用的策略是首先将输入
阅读全文
摘要:ICU Analysis插件是一组将Lucene ICU模块集成到Elasticsearch中的库。 本质上,ICU的目的是增加对Unicode和全球化的支持,以提供对亚洲语言更好的文本分割分析。 从Elasticsearch的角度来看,此插件提供了文本分析中的新组件,如下表所示: 安装 我们可以首
阅读全文
摘要:在7.0版发布之前,hits.total始终用于表示符合查询条件的文档的实际数量。在Elasticsearch 7.0版中,如果匹配数大于10,000,则不会计算hits.total。 这是为了避免为给定查询计算精确匹配文档的不必要开销。 我们可以通过将track_total_hits = true
阅读全文
摘要:在实际的搜索中,我们有时候会打错字,从而导致搜索不到。在Elasticsearch中,我们可以使用fuzziness属性来进行模糊查询,从而达到搜索有错别字的情形。 match查询具有“fuziness”属性。它可以被设置为“0”, “1”, “2”或“auto”。“auto”是推荐的选项,它会根据
阅读全文
摘要:在上一篇文章 “Elasticsearch:运用scroll接口对大量数据实现更好的分页”,我们讲述了如何运用scroll接口来对大量数据来进行有效地分页。在那篇文章中,我们讲述了两种方法: from加上size的方法来进行分页 运用scroll接口来进行分页 对于大量的数据而言,我们尽量避免使用f
阅读全文
摘要:在Elasticsearch中,我们可以通过size和from来对我们的结果来进行分页。但是对于数据量很大的索引,这是有效的吗?Scroll API可用于从单个搜索请求中检索大量结果(甚至所有结果),这与在传统数据库上使用cursor的方式非常相似。Scroll不是用于实时用户请求,而是用于处理大量
阅读全文
摘要:我们发现一些用户经常编写了一些非常冗长和复杂的查询 在很多情况下,相同的查询会一遍又一遍地执行,但是会有一些不同的值作为参数来查询。在这种情况下,我们觉得使用一个search template(搜索模板)来做这样的工作非常合适。搜索模板允许您使用可在执行时定义的参数定义查询。 Search temp
阅读全文
摘要:Index template定义在创建新index时可以自动应用的settings和mappings。 Elasticsearch根据与index名称匹配的index模式将模板应用于新索引。这个对于我们想创建的一系列的Index具有同样的settings及mappings。比如我们希望每一天/月的日
阅读全文
摘要:在今天的这个教程中,我们来着重讲解一下如何使用Elasticsearch中的copy来提高搜索的效率。比如在我们的搜索中,经常我们会遇到如下的文档: 在这里,我们可以看到在这个文档中,我们有这样的几个字段: 它们是非常相关的。我们在想是不是可以把它们综合成一个字段,这样可以方便我们的搜索。假如我们要
阅读全文
摘要:在处理大量数据时,关系数据库存在很多问题。 无论是速度,高效处理,有效并行化,可扩展性还是成本,当数据量开始增长时,关系数据库都会失败。该关系数据库的另一个挑战是必须预先定义关系和模式。Elasticsearch也是一个NoSQL文档数据存储。 但是,尽管是一个NoSQL数据存储,Elasticse
阅读全文
摘要:在我们开发的过程中,我们有很多时候需要用到Reindex接口。它可以帮我们把数据从一个index到另外一个index进行重新reindex。这个对于特别适用于我们在修改我们数据的mapping后,需要重新把数据从现有的index转到新的index建立新的索引,这是因为我们不能修改现有的index的m
阅读全文
摘要:Ngrams和edge ngrams是在Elasticsearch中标记文本的两种更独特的方式。 Ngrams是一种将一个标记分成一个单词的每个部分的多个子字符的方法。 ngram和edge ngram过滤器都允许您指定min_gram以及max_gram设置。 这些设置控制单词被分割成的标记的大小
阅读全文
摘要:Elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: 如果我们使用的是standard的分词器,那么结果就是: 显然这对中文来说并不友好,它显示的每一个汉字。好在Elastic的大拿medcl已经为我们做好IK中文分词器。下面我们来详细介绍如何安装并使用中文
阅读全文
摘要:在今天的文章中,我们来进一步了解analyzer。 analyzer执行将输入字符流分解为token的过程,它一般发生在两个场合: 在indexing的时候,也即在建立索引的时候 在searching的时候,也即在搜索时,分析需要搜索的词语 什么是analysis? 分析是Elasticsearch
阅读全文