本文详细论述了Elasticsearch全文检索、指定字段检索实战技巧,并提供了详尽的源码举例(微信有字数限制,删除了代码,详见博客)。是不可多得学习&实战资料。0、前言为了讲解不同类型ES检索,我们将要对包含以下类型的文档集合进行检索:1.title标题;2.authors作者;3.summary摘要;4.releasedata发布日期;5.numberofreviews评论数。首先,让我们借助bulkAPI批量创建新的索引并提交数据。PUTbookdbindex{"settings":{"number...
2022-10-26 11:43:50 6051浏览 0点赞 0回复 0收藏
一、项目概述这是一个被我称之为“没有枪、没有炮,硬着头皮自己造”的项目。项目是和其它公司合作的三个核心模块开发。使用ES的目的是:1)、采集数据、网站数据清洗后存入ES;2)、对外提供精确检索、通配符检索、模糊检索、分词检索、全文检索接口等二次封装接口。二、项目架构如上图所示,ES作为中间层,一方面存储数据清洗后存储的数据,另一方面对外提供插入、更新、删除、检索接口的。三、ES使用小结3.1ES版本选型1.X,2...
2022-10-20 15:47:27 4253浏览 0点赞 0回复 0收藏
在业务系统中,遇到过两个问题:问题1:设置为keyword类型的字段,插入很长的大段内容后,报字符超出异常,无法插入。问题2:检索超过ignoreabove设定长度的字段后,无法返回结果。思考:Elasticsearch单字段支持的最大字符数?本文是基于设置ignoreabove之后引申的问题展开讨论与思考。01ignoreabove的作用?ES中用于设置超过设定字符后,不被索引或者存储。Stringslongerthantheignoreabovesettingwillnotbeindexedor...
2022-10-20 15:46:45 7086浏览 0点赞 0回复 0收藏
题记Elasticsearch当清理缓存(echo3>procsysvmdropcaches)的时候,出现如下集群健康值:red,红色预警状态,同时部分分片都成为灰色。查看Elasticsearch启动日志会发现如下:集群服务超时连接的情况。bserver:timeoutnotificationfromclusterservice.timeoutsetting[1m],timesincestart[1m]该问题排查耗时很长,问题已经解决。特将问题排查及解决方案详尽的整理出来。1、集群状态解读head插件会以不同的颜色显示。1)、绿色—...
2022-10-20 15:46:18 5257浏览 0点赞 0回复 0收藏
题记由于之前已经梳理过Elasticsearch基础概念且在项目中实战过Elasticsearch的增删改查、聚类、排序等相关操作,对ES算是有了一定的认知。但是,仍然对于一些底层的原理认知模糊,特买来《深入理解Elasticsearch》过了一遍,将书中一些细节知识点结合官网文档梳理如下。1——4章偏应用,跟着敲一遍代码基本就能理解原理。5——9章偏理论一些。第5章分布式索引架构1、如何选择合适的分片和副本数?目的:规划索引及配置,适应应...
2022-10-20 15:45:48 5021浏览 0点赞 0回复 0收藏
题记源自“死磕Elasticsearch”技术群里的讨论问题:——我想用es做个类似于知识库的东西,所以需要索引一些pdf、word之类的文件,这个你之前有试过吗?能给个方向吗?我的思考如下:1、pdf、Office类的文档如何被ES索引?更确切的说,pdf、Office类文档(word,ppt,excel等)如何导入ES中。如图所示:问题转嫁为:如何将Office类文档、PDF文档导入ES建立索引,并提供全文检索服务?2、Elasticsearch支持的最大待检索字段的长度...
2022-10-20 15:45:12 7543浏览 0点赞 0回复 0收藏
1、Elasticsearch支持聚合后分页吗,为什么?不支持,看看Elasticsearch员工如何解读。这个问题,2014年在github上有很长的讨论。究其为什么ES不支持聚合后分页?可概括如下:1)性能角度——聚合分页会在大量的记录中产生性能问题。2)正确性角度——聚合的文档计数不准确。所以奇怪的事情可能会发生,如第二页的第一项具有比第一页的最后一个元素更高的计数。具体为什么会不正确?这是因为每个分片都提供了自己对有序列表应该...
2022-10-20 15:44:07 5520浏览 0点赞 0回复 0收藏
1、问题抛出某个词组在Elasitcsearch中的某个document中存在,就一定通过某种匹配方式把它搜出来。举例:title公路局正在治理解放大道路面积水问题。输入关键词:道路,能否搜索到这个document呢?实际应用中可能需要:1)检索关键词”理解”、”解放”、”道路”、“理解放大”,都能搜出这篇文档。2)单个的字拆分“治”、“水”太多干扰,不要被检索出来。3)待检索的词不在词典中,也必须要查到。4)待检索词只要在原文title...
2022-10-18 11:21:04 4862浏览 0点赞 0回复 0收藏
1、聚合为什么慢?大多数时候对单个字段的聚合查询还是非常快的,但是当需要同时聚合多个字段时,就可能会产生大量的分组,最终结果就是占用Elasticsearch大量内存,从而导致OOM的情况发生。实践应用发现,以下情况都会比较慢:1)待聚合文档数比较多(千万、亿、十亿甚至更多);2)聚合条件比较复杂(多重条件聚合);3)全量聚合(翻页的场景用)。2、聚合优化方案探讨优化方案一:默认深度优先聚合改为广度优先聚合。"colle...
2022-10-18 11:20:11 5533浏览 0点赞 0回复 0收藏
0、需求随着ELKStack在应用系统中的数据规模的急剧增长,每天千万级别数据量(存储大小:1000000010k1024102495.37GB,假设单条数据10kB,实际远大于10KB)的累积成为日常需求。如何以相对简单的图形化效果展示数据的增量呢?本文给出思路和实现。1、问题分解1.1ES集群的数据量统计ES自带的命令行统计举例:curl'localhost:9200catindicesv'1.2如何实现增量?简化思路:1)每天的固定时间,如早晨00:00统计一次当天的数据量,形...
2022-10-18 11:17:11 3857浏览 0点赞 0回复 0收藏
1、应用场景实时数据流通过kafka后,根据业务需求,一部分直接借助kafkaconnector入Elasticsearch不同的索引中。另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。如下图所示:业务系统的分层结构可分为:接入层、数据处理层、数据存储层、接口层。那么问题来了?我们需要基于聚合(数据处理层)的结果实现检索和聚合分析操作,如何实现更快的检索和更高效的聚合分析效果呢?2、方案选型方案...
2022-10-18 11:16:36 3683浏览 0点赞 0回复 0收藏
1、题记2018年3月初,萌生了一个想法:对Elasticsearch相关的技术书籍做拆解阅读,该想法源自非计算机领域红火已久的【樊登读书会】、得到的每天听本书、XX拆书帮等。目前市面上Elasticsearch的中文书籍就那么基本,针对ES5.X以上的三本左右;国外翻译有几本,都是针对ES1.X,2.X版本,其中《深入理解Elasticsearch》还算比较经典。拆书的目的:1)梳理已有的Elasticsearch知识体系;2)拾遗拉在角落的Elasticsearch知识点;3)...
2022-10-18 11:15:55 4141浏览 0点赞 0回复 0收藏
1、什么是堆内存?Java中的堆是JVM所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在Java中,堆被划分成两个不同的区域:新生代(Young)、老年代(Old)。新生代(Young)又被划分为三个区域Eden、FromSurvivor、ToSurvivor。这样划分的目的是为了使JVM能够更好的管理堆内存中的对象,包括内存的分配以及回收。2、堆内存的作用是什么?在虚拟机启动时创建。堆内存的唯一目的就是创建对象实例,所有的对象实例和数组都要...
2022-10-18 11:11:43 4248浏览 0点赞 0回复 0收藏
01题记想到删除,基础认知是delete,细分为删除文档(document)和删除索引;要删除历史数据,基础认知是:删除了给定条件的数据,用deletebyquery。实际操作发现:删除文档后,磁盘空间并没有立即减少,反而增加了?除了定时任务+deletebyquery,有没有更好的方式呢?02常见的删除操作2.1删除单个文档1DELETEtwitterdoc12.2删除满足给定条件的文档POSTtwitterdeletebyquery{"query":{"match":{"message":"somemessage"}}}注意...
2022-10-18 11:10:12 4844浏览 0点赞 0回复 0收藏
0、实战问题有了分词,开发中会遇到,某个索引的文档集合中,共有多少XX关键词?这就引发出了词频统计的问题。社区问题:中文分词后能否统计索引词频初学者,想做一个简单的论坛检索和热词分析的应用,IK分词后能否将分好的索引词出现频率排序。这样可以形成一个大致的热点词汇范围。我知道单条index的话可以用termvectors做这个事情,要是上万条index能做吗?多谢!1、创建索引DELETEmessageindexPUTmessageindex{"mappings":{...
2022-10-18 11:06:44 5145浏览 0点赞 0回复 0收藏
1、题记我们在实际的业务场景中做Elasticsearch开发时,免不了遇到这样、那样的问题。《死磕Elasticsearch方法论》中,已经告诉大家相关问题的排查方法。这一节,我们以具体的示例,解决基于业务场景的Elasticsearch难题的方法?2、上问题请问下es可以在date字段上查询月日吗下单时间字段类型是date,想查询每年11月11日下单的记录?有什么办法可以zh直接查?原文链接:https:elasticsearch.cnquestion36493、搜索已有...
2022-10-14 16:03:19 4186浏览 0点赞 0回复 0收藏
少啰嗦,直接看东西。——罗永浩1、query和filter的本质区别?以下几张图能更好的概括:query关注点:此文档与此查询子句的匹配程度如何?filter关注点:此文档和查询子句匹配吗?2、Query检索细化关注点1)是否包含?确定文档是否应该成为结果的一部分.2)相关度得分多少?除了确定文档是否匹配外,查询子句还计算了表示文档与其他文档相比匹配程度的score。3)得分越高,相关度越高。更相关的文件,在搜索排名更高。典型应用...
2022-10-14 16:02:27 4558浏览 0点赞 0回复 0收藏
1、题记这是stackoverflow上一篇精彩的问答。原文不大好理解,我做了梳理+图解;原文是ES早期版本,部分写法已不适用,所有DSL我在6.X上进行了重写和验证;针对原文内容做了扩展。2、知识库全文检索问题抛出重新审视一个停滞不前的项目,并寻求建议,对数千个“旧”文档进行现代化改造,最终期望效果:通过网络访问这些文档。文档以各种格式存在,有些已经过时:.doc,PageMaker,硬拷贝hardcopy(OCR),PDF……很多文档已经被...
2022-10-14 16:01:57 5273浏览 0点赞 0回复 0收藏
1、题记工欲善其事必先利其器,ELKStack的学习和实战更是如此,特将工作中用到的“高效”工具分享给大家。希望能借助“工具”提高开发、运维效率!2、工具分类概览2.1基础类工具1、Head插件1)功能概述:ES集群状态查看、索引数据查看、ESDSL实现(增、删、改、查操作)比较实用的地方:json串的格式化2)地址:http:mobz.github.ioelasticsearchhead2、Kibana工具除了支持各种数据的可视化之外,最重要的是:支持DevTo...
2022-10-14 16:01:18 5369浏览 0点赞 0回复 0收藏