ElasticSearch的使用方式

153 阅读2分钟

这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战

ElasticSearch

image.png

ElasticSearch是什么?

分布式全文检索引擎

好处:

  1. 近乎实时的存储、检索数据

  2. 扩展型好,能扩展上百台服务器

  3. 处理PB级别的数据

    ELK技术

elasticsearcg + logstash + kibana

倒排索引结构

面试常问

es使用的的是一种倒排索引结构,lucene倒排索引作为底层,这种结构有利于快速的全文搜索

es核心概念

  1. 索引,在这里其实是数据库,它是一个很大的文档集合
  2. 字段类型
  3. 文档
  4. 底层用了分片,因为底层封装了lucene(倒排索引结构)

使用Rest风格操作es

methodurl地址描述
PUTlocalhost:9200/索引名称/类型名称/文档id创建文档(指定文档id)
POSTlocalhost:9200/索引名称/类型名称创建文档(随机文档id)
POSTlocalhost:9200/索引名称/类型名称/文档id/_update修改文档
DELETElocalhost:9200/索引名称/类型名称/文档id删除文档
GETlocalhost:9200/索引名称/类型名称/文档id查询文档通过文档id
POSTlocalhost:9200/索引名称/类型名称/_search查询所有数据

image.png 复杂查询

  1. 排序

image.png 2. 分页

image.png

  1. 高亮

image.png 自定义高亮条件

image.png

  1. 模糊查询 在布尔里面
  2. 布尔查询
  • must ,所有条件都要符合,类似 mysql里面的 where 条件中的 and

image.png

  • should 有一个条件符合即可,类似mysql里面的where 条件中的 or

image.png

  • must_not 不是条件中的内容,即可查询出来,比如年龄不是25岁的

image.png

  • filter 过滤器,附加一些过滤的条件
名称描述
gt大于
gte大于等于
It小于
Ite小于等于

image.png

  1. 精准查询

image.png

trem精确查找

term查询是直接通过倒排索引指定的词条进行精确查找的

关于分词:

term,会直接查询精确的

match,会使用分词器解析(先分析文档,在通过分析的文档进行查询)

image.png 两个类型

text 会被分词器解析

keyword 不会被分词器解析