Elasticsearch

1 Elasticsearch基础

Elaticsearch简称为ES,是一个开源的可扩展的分布式的全文检索引擎,它可以近乎实时的存储、检索数
据。本身扩展性很好,可扩展到上百台服务器,处理PB级别的数据。ES使用Java开发并使用Lucene作
为其核心来实现索引和搜索的功能,但是它通过简单的RestfulAPI和javaAPI来隐藏Lucene的复杂性,
从而让全文搜索变得简单。

在这里插入图片描述

1.1 特点

Elasticsearch的特点是它提供了一个极速的搜索体验。这源于它的高速(speed)。相比较其它
的一些大数据引擎,Elasticsearch可以实现秒级的搜索,速度非常有优势。Elasticsearch的
cluster是一种分布式的部署,极易扩展(scale )这样很容易使它处理PB级的数据库容量。最重要
的是Elasticsearch是它搜索的结果可以按照分数进行排序,它能提供我们最相关的搜索结果
(relevance) 。

在这里插入图片描述

1.2 企业使用场景

常见场景
在这里插入图片描述
常见案例
在这里插入图片描述

1.3 主流全文搜索方案对比

Lucene、Solr、Elasticsearch是目前主流的全文搜索方案,基于倒排索引机制完成快速全文搜索。
在这里插入图片描述
三者之间的区别和联系
在这里插入图片描述

2 elasticsearch入门使用

Elasticsearch是基于Lucene的全文检索引擎,本质也是存储和检索数据。ES中的很多概念与MySQL类 似 可以按照关系型数据库的经验去理解。

在这里插入图片描述

2.1 Elasticsearch IK分词器

在这里插入图片描述
扩展词:就是不想让哪些词被分开,让他们分成一个词

停用词:有些词在文本中出现的频率非常高。但对本文的语义产生不了多大的影响。例如英文的a、
an、the、of等。或中文的”的、了、呢等”。这样的词称为停用词。停用词经常被过滤掉,不会被进行
索引。在检索的过程中,如果用户的查询词中含有停用词,系统会自动过滤掉。停用词可以加快索引的
速度,减少索引库文件的大小。

同义词:语言博大精深,有很多相同意思的词,我们称之为同义词,比如“番茄”和“西红柿”,“馒头”和“馍”等。在
搜索的时候,我们输入的可能是“番茄”,但是应该把含有“西红柿”的数据一起查询出来,这种情况叫做
同义词查询。
注意:扩展词和停用词是在索引的时候使用,而同义词是检索时候使用。

2.2 索引操作(创建、查看、删除)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 映射操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 文档增删改查及局部更新

文档,即索引库中的数据,会根据规则创建索引,将来用于搜索。可以类比做数据库中的一行数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 elasticsearch 高级应用

3.1 映射高级

在这里插入图片描述
在这里插入图片描述
动态映射
在这里插入图片描述
自定义动态映射
如果你想在运行时增加新的字段,你可能会启用动态映射。 然而,有时候,动态映射 规则 可能不太智
能。幸运的是,我们可以通过设置去自定义这些规则,以便更好的适用于你的数据。

当 Elasticsearch 遇到一个新的字符串字段时,它会检测这个字段是否包含一个可识别的日期,比如
2014-01-01 如果它像日期,这个字段就会被作为 date 类型添加。否则,它会被作为 string 类型添加。
有些时候这个行为可能导致一些问题。想象下,你有如下这样的一个文档:
{ “note”: “2014-01-01” }
假设这是第一次识别 note 字段,它会被添加为 date 字段。但是如果下一个文档像这样:
{ “note”: “Logged out” }
这显然不是一个日期,但为时已晚。这个字段已经是一个日期类型,这个 不合法的日期 将会造成一个
异常。
日期检测可以通过在根对象上设置 date_detection 为 false 来关闭

3.2 Query DSL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.1 词条级搜索(term-level queries)

可以使用term-level queries根据结构化数据中的精确值查找文档。结构化数据的值包括日期范围、IP
地址、价格或产品ID。
与全文查询不同,term-level queries不分析搜索词。相反,词条与存储在字段级别中的术语完全匹
配。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2 复合搜索(compound query)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 Filter DSL

在这里插入图片描述

在这里插入图片描述

3.4 定位非法搜索及原因

在这里插入图片描述

3.5 聚合分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 Elasticsearch零停机索引重建

Elasticsearch是一个实时的分布式搜索引擎,为用户提供搜索服务,当我们决定存储某种数据时,在创
建索引的时候需要数据结构完整确定下来,与此同时索引的设定和很多固定配置将不能改变。当需要改
变数据结构时就需要重建索引,为此,Elasticsearch团队提供了辅助工具帮助开发人员进行索引重建。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
零停机索引重建操作的三个方案,从自研功能、scroll+bulk到reindex,我们作为Elasticsearch的使用
者,三个方案的参与度是逐渐弱化的,但稳定性却是逐渐上升的,我们需要清楚地去了解各个方案的优
劣,适宜的场景,然后根据实际的情况去权衡,哪个方案更适合我们的业务模型.

3.7 Elasticsearch Suggester智能搜索建议

在这里插入图片描述

4 Elasticsearch高可用分布式集群

4.1 核心概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 Elasticsearch分布式架构

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

4.3 集群规划

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5 分布式集群调优策略

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 Elasticsearch 数据模型构建

在这里插入图片描述
在这里插入图片描述
数据建模的意义
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值