
elasticsearch
文章平均质量分 82
elasticsearch
东境物语
欢迎访问!!!
展开
-
ES 模糊查询 wildcard 的替代方案探索
Wildcard 是一种支持通配符的模糊检索方式。在 Elasticsearch 中,它使用星号 * 代表零个或多个字符,问号?代表单个字符。其使用方式多样,例如可以通过 {"wildcard": {"field_name": "value"}} 的形式进行查询。适用场景通常包括召回率要求高的业务场景,当基于分词的全文检索无法满足需求,如基础词库不完备或分词粒度不精确时,Wildcard 可以发挥作用。然而,Wildcard 也存在一些可能的风险和局限性。原创 2024-08-20 20:16:33 · 5337 阅读 · 8 评论 -
ElasticSearch优化实战:打造高性能搜索引擎的秘籍
本文深入探讨了ElasticSearch(ES)的优化策略,旨在帮助读者提升搜索引擎的性能和效率。文章首先介绍了ES的数据写入和搜索的流程。随后,通过具体用例分析,展现了在不同业务场景下的优化实践,如新闻内容检索、客户服务记录检索和物流信息追踪平台。这些用例揭示了索引分片调整、热点数据处理、异步写入、内容分级索引等多种优化手段的实际效果。文章强调优化ES是一个持续的过程,需要不断地监控、调整和优化以应对数据增长和业务需求的变化。原创 2024-08-01 20:00:06 · 3433 阅读 · 0 评论 -
ES模糊查询wildcard的替代方案
例如:min_gram,max_gram配置为5时,quick.brown.fox分词后会产生quick,uick.,ick.b,ck.br,k.bro,.brow,brown,rown.,own.f,wn.fo,n.fox。b.用户输入brown.fox,brown.fox会被分词成brown,rown.,own.f等,此时同样会返回quick.brown.fox。例如quick将会被分词为q,u,i,…a.用户输入quick,brown,k.bro等都能够返回quick.brown.fox。转载 2024-03-21 21:41:38 · 1882 阅读 · 0 评论 -
ES索引重建reindex详解
ES分片数变更、mapping字段变更、分词规则修改等必须重建索引,此时可通过es本身自带的reindex功能进行数据迁移,支持跨索引、跨集群的数据迁移。原创 2023-08-09 22:30:00 · 10500 阅读 · 0 评论 -
ElasticSearch的segment段合并原理
Elasticsearch索引(elasticsearch index)由一个或者若干分片(shard)组成,分片(shard)通过副本(replica)来实现高可用。一个分片(share)其实就是一个Lucene索引(lucene index),一个Lucene索引(lucene index)又由一个或者若干段(segment)组成。所以,当我们查询一个Elasticsearch索引时,查询会在所有分片上执行,既而到段(segment),然后合并所有结果。原创 2023-07-25 21:51:39 · 1155 阅读 · 0 评论 -
ES高级操作手册
当ES扩容缩容时,若分片太大,分片初始化会很慢,此时可选择修改ES配置加快recovery速度。若是生产环境ES在对外提供服务,es默认配置可能导致对外服务抖动,也可以通过修改配置降低recovery速度。es默认限制了并行恢复的数量,速度等。原创 2022-10-22 19:45:00 · 2760 阅读 · 0 评论 -
99.999%,提升ElasticSearch稳定性的秘密
ElasticSearch 是一个分布式的开源搜索和分析引擎,因其功能强大、简单易用而被应用到很多业务场景。在生产环境使用 ES 时,如果未进行优化则服务的稳定性可能得不到保障,目前我们使用 ES 作为账单平台的基础组件为微信支付提供服务时就遇到这种问题。本文即从当前的业务场景出发,分析 ES 稳定性未到达要求的原因并提供相应的解决思路。转载 2022-10-11 20:00:00 · 414 阅读 · 0 评论 -
Elasticsearch 在地理信息空间索引的探索和演进
LBS服务是当前互联网重要的一环,涉及餐饮、娱乐、打车、零售等场景。在这些场景中,有很重要的一项基础能力:搜索附近的POI。比如搜索附近的美食,搜索附近的电影院,搜索附近的专车,搜索附近的门店。转载 2022-10-11 19:45:00 · 568 阅读 · 0 评论 -
Elasticsearch近实时搜索
近实时搜索随着按段(per-segment)搜索的发展,一个新的文档从索引到可被搜索的延迟显著降低了。新文档在几分钟之内即可被检索,但这样还是不够快。磁盘在这里成为了瓶颈。提交(Commiting)一个新的段到磁盘需要一个fsync来确保段被物理性地写入磁盘,这样在断电的时候就不会丢失数据。 但是fsync操作代价很大; 如果每次索引一个文档都去执行一次的话会造成很大的性能问题。我们需...原创 2018-04-16 15:17:01 · 1241 阅读 · 0 评论 -
elasticsearch拼音插件安装以及(IK+pinyin使用)
有时在淘宝搜索商品的时候, 会发现使用汉字, 拼音, 或者拼音混合汉字都会出来想要的搜索结果, 今天找了一下, 是通过拼音搜索插件实现的:ik的安装及使用:https://blog.youkuaiyun.com/wwd0501/article/details/782712795.2.2版本 拼音分词 的安装:1, 下载(https://github.com/medcl/elasticsearch...原创 2018-06-08 14:24:45 · 11565 阅读 · 0 评论 -
用Elasticsearch构建电商搜索平台(有赞)
随着互联网数据规模的爆炸式增长,如何从海量的历史,实时数据中快速获取有用的信息,变得越来越有挑战性。转载 2019-05-07 19:17:11 · 8814 阅读 · 1 评论 -
有赞搜索系统技术
上文说到有赞搜索系统的架构演进,为了支撑不断演进的技术架构,除了 Elasticsearch 的维护优化之外,我们也开发了上层的中间件来应对不断提高的稳定性和性能要求。Elasticsearch 的检索执行效率可以表示为:O(num_of_files * logN)其中 numoffiles 表示索引文件段的个数,N 表示需要遍历的数据量,从这里我们可以总结出提升查询性能可以考虑的两点:减少遍历的索引文件数量 减少遍历的索引文档总数从 Elasticsearch 自身来说,减少索引文件数量方转载 2022-01-26 20:53:07 · 245 阅读 · 0 评论 -
有赞搜索系统的架构演进
有赞搜索平台是一个面向公司内部各项搜索应用以及部分 NoSQL 存储应用的 PaaS 产品,帮助应用合理高效的支持检索和多维过滤功能,有赞搜索平台目前支持了大大小小一百多个检索业务,服务于近百亿数据。在为传统的搜索应用提供高级检索和大数据交互能力的同时,有赞搜索平台还需要为其他比如商品管理、订单检索、粉丝筛选等海量数据过滤提供支持,从工程的角度看,如何扩展平台以支持多样的检索需求是一个巨大的挑战。我是有赞搜索团队的第一位员工,也有幸负责设计开发了有赞搜索平台到目前为止的大部分功能特性,我们搜索团队目转载 2022-01-26 18:13:07 · 534 阅读 · 0 评论 -
腾讯万亿级Elasticsearch架构实践
原创 2021-12-31 17:44:15 · 1872 阅读 · 0 评论 -
腾讯万亿级 Elasticsearch 技术解密
Elasticsearch(ES)是近年来炙手可热的开源分布式搜索分析引擎,通过简单部署,它可以轻松实现日志实时分析、全文检索、结构化数据分析等多重诉求,并将挖掘数据价值的成本大幅降低。ES在腾讯内部和腾讯云用户中拥有丰富的大规模落地场景,它们持续地推动着原生ES朝着高可用、高性能、低成本的方向优化。本文即将介绍腾讯在ES的应用落地过程中,遇到的挑战、优化思路、优化成果和未来探索方向,希望能为...转载 2020-01-16 14:32:43 · 831 阅读 · 0 评论 -
Elasticsearch索引拆分方案
一、概况项目中,由于Elasticsearch单个索引数据量大,索引中部分数据不常用,在搜索和写入文档时,效率较低。为了减小单个索引的数据量,提升搜索和文档写入效率,将大索引根据一定的规则拆分为小的索引。拆分索引的关键点在于建立索引,文档同步,多索引搜索。建立索引的关键问题是索引的设置以及字段的属性设置,最常见的问题是,某个字段我们希望Elasticsearch 按照我们的想法进行分词。采用自动生成索引(默认模板),索引字段的类型就会根据第一条文档的数据进行字段转换,无法实现具体某个字段使用我们想要原创 2021-12-17 16:46:07 · 3100 阅读 · 0 评论 -
elasticsearch 处理null值
1.查询为空的字段我们查询某个字段为空的数据时,在mysql中:select eid,ent_name from ent_search where enttype_code is NULL;在elasticsearch中,我们使用的api为exists,这个查询是:查询这个字段为空的或者没有这个字段的:GET ent_search/_search{ "_source": ...原创 2018-10-29 11:28:58 · 5160 阅读 · 0 评论 -
ElasticSearch 垃圾回收器优化
es版本:6.3.2es集群配置:16核cpu,内存64G,磁盘200GJDK版本:1.8垃圾回收器: CMS+ParNew部署在这个集群的服务偶尔会遇到服务超时的情况,从kibana监控中可以看到,服务超时情况发生时,es服务器cpu较高。es存在young gc频繁,old gc 低频率,每天约出现2-4次。查看过去一小时的监控情况,发现young gc 比较频繁,大量对象最终进入了老年代,通过old gc被回收掉了。转载 2021-04-01 20:52:58 · 3273 阅读 · 1 评论 -
【Elasticsearch】优秀实践-你的ES为什么写的慢了?
前言经常会有人吐槽,Elasticsearch为什么写着写着突然就慢了?笔者总结了常见的一些导致写入慢的场景,以供大家排查。话不多说,进入正题…Elasticsearch写入慢问题排查思路Elasticsearch的写入场景相对比较简单,绝大部分场景下我们都是使用bulk API进行写入操作,列举了下面一些场景可能会导致写入慢的问题。场景1 内存参数配置不合理。是否给Elasticsearch实例足够的内存,如果内存足够的话,建议配置30GB每个Elasticsearch原创 2021-04-01 20:44:15 · 4445 阅读 · 0 评论 -
滴滴ElasticSearch千万级TPS写入性能翻倍技术剖析
1. 背景前段时间,为了降低用户使用 ElasticSearch 的存储成本,我们做了数据的冷热分离。为了保持集群磁盘利用率不变,我们减少了热节点数量。ElasticSearch 集群开始出现写入瓶颈,节点产生大量的写入 rejected,大量从 kafka 同步的数据出现写入延迟。我们深入分析写入瓶颈,找到了突破点,最终将 Elasticsearch 的写入性能提升一倍以上,解决了 ElasticSearch 瓶颈导致的写入延迟。这篇文章介绍了我们是如何发现写入瓶颈,并对瓶颈进行深入分析,最终进行了创转载 2021-04-01 20:41:38 · 678 阅读 · 0 评论 -
Elasticsearch 跨集群复制(CCR)的使用
什么是 Elasticsearch 的跨集群复制CCR - Cross Cluster Replication - 跨集群复制是 Elasticsearch v6.5 发布的一个新的特性,这个特性可以让你将一个集群的索引数据同步复制到远程的另外一个集群上面去。或者反过来,将一个远程的集群的索引数据同步的复制到本地 Elasticsearch 集群中来。集群复制类似于数据订阅的方式,一个集群的数据可以被多个集群订阅,也就是可以被复制到多个集群上面去。CCR 有两个角色,一个是 Leader,表示数据的源头原创 2020-07-01 10:10:53 · 2673 阅读 · 5 评论 -
Elasticsearch 深分页问题
订单查询从mysql迁移至Es,分页查询订单有超过1w条的需求原创 2020-10-04 17:26:52 · 734 阅读 · 0 评论 -
ElasticSearch join连接查询
特别说明:文章所有内容基于ElasticSerch 5.5.3版本ElasticSerch 的连接查询有两种方式实现nested parent和child关联查询nested存储结构 nested的方式和其他字段一样,在同一个type里面存储,以数组的方式存储在 type里,格式如下:PUT index_test/type_info/1000{ "userId": 1...原创 2020-03-23 17:59:11 · 997 阅读 · 1 评论 -
Elasticsearch5基于completion suggester实现提示词(类京东淘宝)
支持拼音首字母,全拼,和中文匹配提示,如下原创 2018-07-02 16:18:21 · 7178 阅读 · 13 评论 -
Elasticsearch 每个索引应该有多少个分片
再强调一次, 虽然这里我们暂未涉及副本节点的介绍, 但上面的指导原则依然使用: 是否有必要在每个节点上只分配一个索引的分片. 另外, 如果给每个分片分配1个副本, 你所需的节点数将加倍. 如果需要为每个分片分配2个副本, 则需要3倍的节点数. 更多详情可以参考。不过, 你最好还是能描述出每个节点上只放一个索引分片的必要性. 在开始阶段, 一个好的方案是根据你的节点数量按照1.5~3倍的原则来创建分片. 例如,如果你有3个节点, 则推荐你创建的分片数最多不超过9(3x3)个.原创 2020-07-10 19:41:27 · 2616 阅读 · 0 评论 -
Elasticsearch:选择恰当的分片数量和分片副本数量
最开始使用ElasticSearch时,一般都是创建一个索引,导入数据,然后发送查询命令检索数据。我们确信系统运行庚子,至少在最开始,数据量不大而且QPS(Query Per Second)也不高的时候运行良好。在幕后,ElasticSearch创建了一些分片来存储数据,也可能还会创建分片副本(例如,如果用默认配置),而且用户在配置方面也不用过多地操心。当应用程序规模增长起来,越来越多的数据需要进行索引,QPS也变得越来越高。这个时候,量变就引起质变了。慢慢地问题也就出现了(读者可以阅读知识的灵活运用。原创 2020-07-10 16:35:22 · 3714 阅读 · 0 评论 -
Elasticsearch跨集群搜索(Cross Cluster Search)
1、简介Elasticsearch在5.3版本中引入了Cross Cluster Search(CCS 跨集群搜索)功能,用来替换掉要被废弃的Tribe Node。类似Tribe Node,Cross Cluster Search用来实现跨集群的数据搜索。跨集群搜索使您可以针对一个或多个远程集群运行单个搜索请求。例如,您可以使用跨集群搜索来过滤和分析存储在不同数据中心的集群中的日志数据。...转载 2020-01-15 14:47:15 · 1820 阅读 · 0 评论 -
腾讯Elasticsearch海量规模背后的内核优化剖析
作者:黄华,腾讯 TEG 云架构平台部研发工程师背景Elasticsearch 在腾讯内部广泛应用于日志实时分析、结构化数据分析、全文检索等场景,目前单集群规模达到千级节点、万亿级吞吐,同时腾讯联合 Elastic 公司在腾讯云上提供了内核增强版 ES 云服务。海量规模、丰富的应用场景推动着腾讯对原生 ES 进行持续的高可用、高性能、低成本等全方位优化。本次分享主要剖析腾讯对 Elasticsearch 海量规模下的内核优化与实践,希望能和广大 ES 爱好者共同探讨推动 ES 技术的发展。目录转载 2020-05-12 09:24:05 · 531 阅读 · 1 评论 -
Elasticsearch5.2.2 安装教程
1、因Elasticsearch是基于Java写的,所以它的运行环境中需要java的支持,在Linux下执行命令:java -version,检查Jar包是否安装安装java版本至少是1.8以上2、首先准备下载Elasticsearch5.2.2 安装包wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticse...原创 2017-08-09 15:12:14 · 510 阅读 · 0 评论 -
使用canal同步MySQL数据到ES的有序性保证
最近在做的项目中有用到canal实时同步MySQL的数据,并且写入es的场景,总结了一些心得,以备后查。总体同步的流程图如下:MySQL-es process.png链路中的环节稍微解释下: binlog MySQL的自身的操作日志,用来记录数据的变更操作及变更后的数据。需要开启并配置 binlog-format 为 ROW 模式。具体可查看canal文档。 ...原创 2020-04-18 21:12:25 · 2821 阅读 · 1 评论 -
滴滴Elasticsearch多集群架构实践
Elasticsearch 是基于 Lucene 实现的分布式搜索引擎,提供了海量数据实时检索和分析能力。Elastic 公司开源的一系列产品组成的 Elastic Stack,可以为日志服务、搜索引擎、系统监控等提供简单、易用的解决方案。滴滴 Elasticsearch 简介滴滴 2016 年初开始构建 Elasticsearch 平台,如今已经发展到超过 3500+ Elasticse...转载 2020-03-26 15:01:27 · 315 阅读 · 0 评论 -
Elasticsearch冷热分离原理和实践
性能与容量之间的矛盾由来已久,计算机的多级存储体系就是其中一个经典的例子,同样的问题在Elasticsearch中也存在。为了保证Elasticsearch的读写性能,官方建议磁盘使用SSD固态硬盘。然而Elasticsearch要解决的是海量数据的存储和检索问题,海量的数据就意味需要大量的存储空间,如果都使用SSD固态硬盘成本将成为一个很大的问题,这也是制约许多企业和个人使用Elasticsea...转载 2020-03-26 14:31:15 · 2160 阅读 · 0 评论 -
ES水平扩容
怎样为我们的正在增长中的应用程序按需扩容呢? 当启动了第三个节点,我们的集群将会看起来如图1“拥有三个节点的集群——为了分散负载而对分片进行重新分配”所示。图1. 拥有三个节点的集群——为了分散负载而对分片进行重新分配Node 1和Node 2上各有一个分片被迁移到了新的Node 3节点,现在每个节点上都拥有2个分片,而不是之前的3个。 这表示每个节点的硬件资源(CPU, R...原创 2020-03-25 18:04:55 · 3634 阅读 · 1 评论 -
Elasticsearch性能优化总结
下面是对ES使用实践的一些经验总结,供大家参考;有些已经不太合适。一、 硬件环境选择:如果有条件,尽可能使用SSD硬盘, 不错的CPU。ES的厉害之处在于ES本身的分布式架构以及lucene的特性。IO的提升,会极大改进ES的速度和性能。二、系统拓朴设计:ES集群在架构拓朴时,一般都会采用Hot-Warm的架构模式,即设置3种不同类型的节点:Master节点、Hot 节点和 War...原创 2020-03-24 17:57:39 · 2134 阅读 · 1 评论 -
ElasticSearch5.X IK分词器使用
IK分词器使用在创建mapping时,设置IK分词器,设置analyzer和search_analyzer。例:1.create a indexcurl -XPUT http://localhost:9200/class2.create a mappingcurl -XPOST http://localhost:9200/class/student/_m原创 2020-03-24 09:59:50 · 1753 阅读 · 0 评论 -
ElasticSearch5.X搜索条件的聚合(六)
范围限定的聚合编辑(测试数据:http://blog.youkuaiyun.com/wwd0501/article/details/78501842)所有聚合的例子到目前为止,你可能已经注意到,我们的搜索请求省略了一个query。整个请求只不过是一个聚合。聚合可以与搜索请求同时执行,但是我们需要理解一个新概念:范围。默认情况下,聚合与查询是对同一范围进行操作的,也就是说原创 2017-11-10 18:08:35 · 2402 阅读 · 0 评论 -
Elasticsearch内存那些事儿
Elasticsearch内存分配设置详解。前言「该给 ES 分配多少内存?」「为什么是给 ES 分配服务器的一半内存?」「为什么内存使用率不断升高,没有释放?」「为何经常有某个 field 的数据量超出内存限制的异常?」「为何感觉上没多少数据,也会经常 Out Of Memory?」相信每个ES使用者或者运维人员都遇到过这些问题,也踩过不少坑。这里根据我个人的学习和日...原创 2020-01-22 11:30:31 · 2411 阅读 · 1 评论 -
大规模Elasticsearch集群管理心得
【携程旅行网 吴晓刚】ElasticSearch目前在互联网公司主要用于两种应用场景,其一是用于构建业务的搜索功能模块且多是垂直领域的搜索,数据量级一般在千万至数十亿这个级别;其二用于大规模数据的实时OLAP,经典的如ELKStack,数据规模可能达到千亿或更多。 这两种场景的数据索引和应用访问模式上差异较大,在硬件选型和集群优化方面侧重点也会有所不同。一般来说后一种场景属于大数据范畴,数据量...转载 2020-01-13 20:40:04 · 443 阅读 · 0 评论 -
关于日志型数据管理策略的思考
近两年随着Elastic Stack的愈发火热,其近乎成为构建实时日志应用的工业标准。在小型数据应用场景,最新的6.5版本已经可以做到开箱即用,无需过多考虑架构上的设计工作。 然而一旦应用规模扩大到数百TB甚至PB的数据量级,整个系统的架构和后期维护工作则显得非常重要。借着2018 Elastic Advent写文的机会,结合过去几年架构和运维公司日志集群的实践经验,对于大规模日志型数据的管理策略...原创 2020-01-13 20:26:16 · 871 阅读 · 0 评论 -
一例Query Cache引起的性能问题分析
注:本文是针对Elastic中文社区问题question#2484的分析和总结。问题概述一个线上集群,执行的Query DSL都是一样的,只是参数不同。 统计数据显示98-99%的查询响应速度都很快,只需要4 -6ms, 但有1%左右的查询响应时间在100ms - 200ms。 集群硬件配置较高,使用的SSD,系统可用内存远高于索引文件大小总和,并且线上已经运行有一段时间,数据应该已...原创 2020-01-09 10:54:16 · 526 阅读 · 1 评论