
Elasticsearch从基础到实战
文章平均质量分 62
Elasticsearch基础+实战
小雨青年
2025年和我一起做属于自己的独立开发项目!CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2023博客之星TOP153。
展开
-
【Elasticsearch】从实验走向实战 运行稳定的ES实例 让status为green ! 如何配置Elasticsearch运行的健康检查为green?
前言大家好,这里是分享Elasticsearch高级实战教程的小雨。我是一只英短,喜欢和大家分享技术相关的教程资料,如果有疑问,欢迎前来探讨,欢迎互粉!Elasticsearch目前广泛应用于各种项目中,如果你处于正在学习的阶段,可能本地只运行了一个节点,但是当我们查看索引状态时会发现运行状态是黄色yellow,这显然是不能用于实际线上环境的。这也就是本次要解决的问题:如何配置Elasticsearch运行状态为健康?查看健康状态GET _cluster/health{ "clus原创 2021-04-27 23:21:30 · 582 阅读 · 0 评论 -
【Elasticsearch】使用IMDB学习ES(3) 设计映射结构
目录本系列正在更新,点击下方查看Elasticsearch】使用IMDB学习ES(1)准备数据集【Elasticsearch】使用IMDB学习ES(2)docker搭建环境理解字段含义根据第一步我们使用python脚本扫描出的文本结构,我们可以得到每行数据的结构如下{ 'titleId': 'tt0012941', 'ordering': '3', 'title': 'Billy Jim', 'region': 'US', 'language': '\\N', 'types':原创 2021-04-21 07:28:09 · 524 阅读 · 0 评论 -
【Elasticsearch】使用IMDB学习ES(2)docker搭建环境
前言在前面的数据准备中,我们确认了使用的数据集。接下来做的就是确认映射结构,导入数据。Mapping创建本地环境这里依然使用docker构建环境。由于是自己学习使用,可以自由选择版本,我们根据官方地址 https://www.elastic.co/cn/downloads/elasticsearch得到现在最新版本是7.11.2对应的kibana的版本也是7.11.2,由于我本地还有另一个es环境,所以这里没有使用默认端口,这里注意下。确认结构脚本直接输出的结果如下参考资料原创 2021-04-20 00:21:37 · 394 阅读 · 0 评论 -
【Elasticsearch】再也不愁没有数据联系ES了
前言由于ES查询操作需要基于若干数据,所以我们需要一个数据集来做对应操作的使用案例。IMDb Datasets则是一个非常完美的数据库,只要满足个人非商用不改变数据就可以。所以我们基于IMDb Datasets使用python3导入ES,作为数据查询的原始数据集。下载数据文件访问 https://www.imdb.com/interfaces/ 下载数据文件。这里我用的是title.akas.tsv.gztitleId (string) - a tconst, an alphan原创 2021-03-09 11:32:27 · 1017 阅读 · 2 评论 -
【Elasticsearch】文本分析 Text analysis 查询_search中使用分析 (3)
内置的analyzerfingerprint指纹分析器实现了一个指纹算法,OpenRefine项目使用该算法来协助聚类。内部的流程为转换小写去掉扩展字符排序删除重复字符删除配置的停止(stop)单词示例如下POST _analyze{ "analyzer": "fingerprint", "text": "Yes yes, Gödel said this sentence is consistent and."}[ and consistent godel is sa原创 2021-03-05 14:22:52 · 560 阅读 · 0 评论 -
【Elasticsearch】文本分析 Text analysis 配置文本分析 (2)
简单实例这是一个简单的分析器,将文本通过空格拆分成各个tokensPOST _analyze{ "analyzer": "whitespace", "text": "The quick brown fox."}{ "tokens" : [ { "token" : "The", "start_offset" : 0, "end_offset" : 3, "type" : "word", "position" :原创 2021-03-04 14:06:30 · 454 阅读 · 1 评论 -
【Elasticsearch】文本分析 Text analysis (1)
Text analysis 是什么Text analysis 是将分结构化文本转化成结构化文本的过程。触发时机当索引或者搜索text类型字段,就会触发文本分析。工作流程1.字符过滤器字符过滤器是对原始文本的处理,比如转换文字编码,过滤网页元素等。2.令牌生成器令牌生成器将字符过滤器处理之后的字节流进行处理,得到令牌(tokens)。分析器必须有且仅有一个令牌生成器。3.令牌过滤器令牌过滤器接收令牌生成器返回的令牌流,再做一些处理。令牌过滤器不允许更改每个令牌的位置或字符偏移量。分原创 2021-03-03 13:53:49 · 820 阅读 · 0 评论 -
【Elasticsearch】高亮查询 highlighting (一)
前言ES作为搜索引擎,其中一个重要的功能就是对于内容的模糊搜索,我们经常可以在网页搜索上看到被搜索的词加粗或者标红显示出来,基本就是高亮搜索带来的结果查询基本查询GET /_search{ "query": { "match": { "title": "预" } }, "highlight": { "fields": { "title": {} } }}自定义高亮标签pre_tags post_tagsGET /_search{原创 2021-03-01 16:51:43 · 1039 阅读 · 0 评论 -
【Elasticsearch】ES查询不等于的实现方式比较 must_not NOT 不等于
前言在我们ES的日常使用中,需要根据业务去筛选不等于某一个数值或者字符串的查询,下面我将列出几种实现方式,并比较优缺点,给大家参考。查询must_notmust_not和must、filter、should属于同一层级,都属于布尔查询下的文档匹配查询。The clause (query) must not appear in the matching documents. Clauses are executed in filter context meaning that scoring is原创 2021-02-25 14:18:44 · 38636 阅读 · 0 评论 -
【Elasticsearch】ES查询优化-小结
ES查询优化小结写入ES数据之前完成数据的组装工作,尽量避免联合查询、关于分页,尽量避免页码过大的分页查询不使用连续分页可以考虑滚动翻页,参考这篇 https://coderfix.blog.csdn.net/article/details/113945699term查询比match_phrase性能要快10倍,比带slop的match_phrase快20倍查询与排序无关的条件优先使用filter模糊匹配 Match,字段判空 Exists,精准匹配 Term 和 Terms,范围匹配 Ran原创 2021-02-23 17:49:19 · 673 阅读 · 0 评论 -
【Elasticsearch】ES查询优化—Scroll API 滚动查询
Scroll API 滚动查询前言查询第一次查询滚动请求清理scroll总结优点缺点参考资料前言ES的查询效率算是比较高的,但是from+size的分页查询方式只能查到一万条,并且随着分页到后面,执行效率越低。Scroll滚动查询的方式可以查询大量数据,并能保证查询数据结果稳定。对于后台批量数据来说非常有用。查询第一次查询第一次查询和通常的_search查询基本一致,只需要在后面加上?scroll=1m,1m代表一分钟,参考的时间格式如下GET bbs/_search?scroll=1m{原创 2021-02-22 18:09:31 · 3214 阅读 · 0 评论 -
【Elasticsearch】ES 7.11 映射字段类型汇总 Mapping Field data types
映射字段类型汇总版本号映射字段类型常见类型binarybooleanKeywordsDatesalias对象和关系类型objectflattenednestedjoin结构化数据类型Rangeipversionmurmur3汇总数据类型aggregate_metric_doublehistogram文字搜索类型textannotated-textcompletionsearch_as_you_typetoken_count文档等级类型dense_vectorsparse_vectorrank_feature原创 2021-02-20 17:29:20 · 1930 阅读 · 0 评论 -
【Elasticsearch】ES正确查询文档数不要使用_search的hit而是使用_count
hit使用hit作为查询的计数是错误的。当我们执行一个查询,比如下面的查询GET /my-index-000001/_search{ "query": { "term": { "user.id": "kimchy" } }}可能得到以下结果{ "took": 5, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0,原创 2021-02-20 01:48:20 · 4725 阅读 · 1 评论