Elasticsearch
文章平均质量分 76
不能放弃治疗
公众号:不能放弃治疗, 微信 bws_csp 欢迎交流
展开
-
重生之我们在ES顶端相遇第16 章 - Lucene 写入流程
上一章我们介绍了倒排索引的数据结构。本章我们将深入介绍 Lucene 写入流程。该知识点在面试中比较常问,也是理解 ES 必须掌握的知识点。原创 2024-09-22 19:27:48 · 619 阅读 · 0 评论 -
重生之我们在ES顶端相遇第15 章 - ES 的心脏-倒排索引
上一章,简单介绍了 ES 的节点类型。本章,我们要介绍 ES 中非常重要的一个概念:倒排索引。ES 的全文索引就是基于倒排索引实现的。本章内容建议重点学习,因为面试也常问。原创 2024-09-21 19:13:34 · 489 阅读 · 0 评论 -
重生之我们在ES顶端相遇第14 章 - ES 节点类型
通过前面的学习,我们已经初步的掌握了 ES 的大部分用法。后面的篇章会介绍 ES 集群相关的内容。本文着重介绍 ES 节点类型,以及他们的作用。简单大概了解下本章的内容,为后面的学习做铺垫。原创 2024-09-21 18:59:26 · 354 阅读 · 0 评论 -
重生之我们在ES顶端相遇第 13 章 - 听说你深度分页时,把ES 搞垮了?
在 ES 中,我们通常使用from, size进行分页。为了避免使用from, size分页太深,或者一次请求过多数据。默认情况下,分页不能超过 1w 条。如果需要深度分页的场景,一般使用PITscroll API解决深度分页性能问题。有关深度分页的内容,也可自行阅读ES 深度分页官网。原创 2024-09-15 16:42:37 · 422 阅读 · 0 评论 -
重生之我们在ES顶端相遇第12 章 - 聚合运算
ES 聚合运算在面向 C 端的日常开发中,比较少碰到。在面向公司内部,或者数据报表的开发中可能会碰到。桶聚合(指标聚合(管道聚合(因为管道聚合开发中实在没碰到过,本篇章就不介绍了。原创 2024-09-08 09:36:50 · 812 阅读 · 0 评论 -
重生之我们在ES顶端相遇第11 章 - 深入自定义语言分词器
国内企业出海是大势所趋,那么基于不同的语种进行分词就显得尤为重要,因为这会让用户的搜索体验更棒!国内出海企业,会更偏向于选择欧美、中东这 2 个地区。因此本文章也重点介绍英语、阿拉伯语的分词。在 ES 中内置的分词器中,有一个叫,我们可以根据该分词器,自定义出符合业务需求的特定语言分词器。该篇我们探讨了如何实现英语、阿拉伯语的分词器。理论上其他语种的分词器也是类似的做法。原创 2024-08-31 20:25:29 · 881 阅读 · 0 评论 -
重生之我们在ES顶端相遇第10 章- 分分分词器的基本使用
分词器在 ES 搜索使用中非常关键,一个好的分词器能够提高搜索的质量,让用户搜索到其想要的内容。下面我将带大家从整体了解分词器。0个或多个 character filters有且仅 1 个 tokenizer0个或多个 token filterscharacter filters: 对输入进行预处理,比如删除 html 元素,比如将表情符号映射为文本tokenizer: 分词器,上面说到的standardwhitespace都属于分词器。原创 2024-08-31 14:01:04 · 633 阅读 · 0 评论 -
重生之我们在ES顶端相遇第9 章- 搜索框最常用的功能 - 搜索建议
在上章介绍完 bool 查询后。我们接下来介绍搜索最常被使用的功能:搜索建议、搜索纠错。在 ES 中的SuggestersAPI 中有以下 4 个 API本文,因章幅原因,以及开发中使用频率,只选择讲解。更多内容请阅读返回与输入的文本相似的 terms。在日常开发中,我们可以使用 term suggest 作为拼写纠错来使用。我们已经将 ES 大部分主流的查询介绍完了,下一个篇章我们将介绍 ES 的分词器。原创 2024-08-02 22:27:37 · 854 阅读 · 0 评论 -
重生之我们在ES顶端相遇第8 章- 它来了,开发中最常用的查询: Bool 查询
在前几章,我们介绍了,如何创建 Mapping,以及常见的搜索。接下来,我们将介绍开发中最最最常用的查询: Bool Query。原创 2024-07-23 22:55:17 · 425 阅读 · 0 评论 -
重生之我们在ES顶端相遇第7 章- 动态映射 - dynamic template(动态模板)
上一篇说的, 当字段不存在时,会按照一定的规则去映射字段类型。而则允许你修改这一规则。PS:开发中几乎不用。为了知识体系的完善,本文章只做简单介绍,更多详细内容可自行阅读官方文档。原创 2024-07-21 14:55:40 · 415 阅读 · 0 评论 -
重生之我们在ES顶端相遇第6 章- Dynamic Mapping(动态映射)
在第5章,我们说完 ES 常用字段类型。但是,并未跟大家解释,为什么不设置 Mapping,写入的字符串,默认就可以全文搜索。例如"query": {"name": {这一切都跟 ES 的功能有关。下面我将介绍这一功能。dynamic mapping 默认是开启的。ES 有以下 4 个可选值• true: 往文档写入新字段时,会自动创建字段类型(默认值)• runtime: 往文档写入新字段时,会自动创建字段类型, 与 true 的区别为,2者字段映射不一样。原创 2024-07-20 11:26:15 · 526 阅读 · 0 评论 -
重生之我们在ES顶端相遇第5章-常用字段类型
手动设置字段类型为keywordPUT /test3"tags": {写入数据keyword其实就是字符串,输入什么,存储就是什么。与 keyword 相对的则是 text。在第三章,我们介绍了全文搜索 match 的用法。你可能会好奇,为啥默认写入的数据就可以使用全文搜索。因为当输入是无规则字符串时,字段类型就是 text。(别着急,默认的字段类型,一会我们就会详细介绍)手动设置字段类型为text# 先删除索引PUT /test3"tags": {原创 2024-07-20 11:25:05 · 1068 阅读 · 0 评论 -
重生之我们在ES顶端相遇第4章-term?match?分不清?我教你一招!
如果我们将 term 查询换成上章讲解的 match 查询,你会发现,以上查询都有匹配记录。在上文我们提到,ES 在全文搜索前(match),会先将输入分词,分解为一个个 term(词)。当使用 term 查询时,ES 会把输入当成一个词。当成一个词(大小写敏感),到 name 中查询。当成一个词,到 name 中查询。因为只有文档1 有 ok 这个词,所以,只有文档1 符合查询条件。是 ES 中非常重要的概念,用于表示文档中一个单独的词。类似的,term 查询的字段,也可以设置算分权重。原创 2024-07-20 11:23:59 · 290 阅读 · 0 评论 -
重生之我们在ES顶端相遇第3章-我学会了全文搜索!!!
与 most_fields, best_fields 主要区别在于,cross_fields 算分是以 term(分词) 为纬度,后两者是以字段为维度。上篇章,介绍了 ES 基本的增删改查。本篇章,将介绍 ES 的全文搜索(full text query),term query 会放到下一章节介绍。分别在 name, title 中查询,如果 name 或者 title 中有匹配,文档就算匹配。被搜索的关键字,要按照指定的顺序出现在文档中,该文档才能被检索。需要注意的是,被搜索的字段,需要有相同的分词器。原创 2024-07-20 11:21:49 · 995 阅读 · 0 评论 -
重生之我们在ES顶端相遇第2章-救命,有人要教我的CURD
OK,简单的 CURD 就介绍完了。后面会慢慢展开更多的知识点,也会越来越深入讲解 ES。总之各位看官不要着急,本系列文章的定位就是 由浅入深,系统的讲解 ES。原创 2024-07-20 11:20:51 · 330 阅读 · 0 评论 -
重生之我们在ES顶端相遇第1章 - ES集群环境搭建
因为 ES 集群开启了 SSL,如果后续有使用客户端连接集群的需求,可以将证书复制至宿主机。使用 docker-compose 搭建 3 个节点集群,外加 kibana。docker-compose 默认会读取当前目录下的。原创 2024-07-20 11:19:28 · 342 阅读 · 0 评论