ElasticSearch基础知识汇总

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录


前言

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎基于RESTful web接口。Elasticsearch是用Java语言开发的并作为Apache许可条款下的开放源码发布是一种流行的企业级搜索引擎。Elasticsearch用于云计算中能够达到实时搜索稳定可靠快速安装使用方便。官方客户端在Java、.NETC#、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示Elasticsearch是最受欢迎的企业搜索引擎其次是Apache Solr也是基于Lucene的搜索服务器。


一、认识ElasticSearch

1.正向索引和倒排索引

正向索引是最传统的根据id索引的方式。但根据词条查询时必须先逐条获取每个文档然后判断文档中是否包含所需要的词条是根据文档找词条的过程。
正排索引简单来说就是遍历全表对逐条信息做模糊查询
在这里插入图片描述
倒排索引则相反是先找到用户要搜索的词条根据词条得到保护词条的文档的id然后根据id获取文档。是根据词条找文档的过程。
倒排索引是ES的独有的特色简单来说将要所搜的数据利用分词器拆分成一个个的词条将词条和文档id组成一个文档
在这里插入图片描述
倒排索引查询流程
在这里插入图片描述

2. MySql与ElasticSearc

Mysql擅长事务类型操作可以确保数据的安全和一致性
Elasticsearch擅长海量数据的搜索、分析、计算
在这里插入图片描述
Mysql与ElasticSearch的概念对比
在这里插入图片描述

3.IK分词器

分词器的作用是创建倒排索引时对文档分词当用户搜索时对输入的内容分词

IK分词器的两种模式

  • ik_smart智能切分粗粒度
  • ik_max_word最细切分细粒度

二、ES索引库操作

索引库就类似数据库表mapping映射就类似表的结构。我们要向es中存储数据必须先创建“库”和“表”。

1.mapping映射属性

mapping是对索引库中文档的约束常见的mapping属性包括

  • type字段数据类型常见的简单类型有字符串text可分词的文本、keyword精确值例如品牌、国家、ip地址)
  • index是否创建索引默认为true;
  • analyzer使用哪种分词器;
  • properties该字段的子字段。

2.索引库的CRUD

测试工具PostMan
2.1创建索引库PUT /索引库名
在这里插入图片描述
2.2查询索引库GET /索引库名在这里插入图片描述
2.3修改索引库添加新字段PUT /索引库名/_mapping
倒排索引结构虽然不复杂但是一旦数据结构改变比如改变了分词器就需要重新创建倒排索引这简直是灾难。因此索引库一旦创建无法修改mapping。
虽然无法修改mapping中已有的字段但是却允许添加新的字段到mapping中因为不会对倒排索引产生影响。
在这里插入图片描述

2.4删除索引库DELETE /索引库名
在这里插入图片描述

三、ES文档库操作

3.1新增文档:POST /{索引库名}/_doc/文档id
新增文档内容与索引库内容保持一致
在这里插入图片描述

3.2查询文档:GET /{索引库名称}/_doc/{id}
在这里插入图片描述
3.3删除文档:DELETE /{索引库名}/_doc/id值
在这里插入图片描述
3.4全局查询:GET/{索引库名}/_search
在这里插入图片描述
3.5修改文档:
修改有两种方式
全量修改直接覆盖原来的文档PUT /{索引库名}/_doc/文档id
在这里插入图片描述

增量修改修改文档中的部分字段POST /{索引库名}/_update/文档id
在这里插入图片描述


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6