这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战
ElasticSearch
ElasticSearch是什么?
分布式全文检索引擎
好处:
-
近乎实时的存储、检索数据
-
扩展型好,能扩展上百台服务器
-
处理PB级别的数据
ELK技术
elasticsearcg + logstash + kibana
倒排索引结构
面试常问
es使用的的是一种倒排索引结构,lucene倒排索引作为底层,这种结构有利于快速的全文搜索
es核心概念
- 索引,在这里其实是数据库,它是一个很大的文档集合
- 字段类型
- 文档
- 底层用了分片,因为底层封装了lucene(倒排索引结构)
使用Rest风格操作es
| method | url地址 | 描述 |
|---|---|---|
| PUT | localhost:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) |
| POST | localhost:9200/索引名称/类型名称 | 创建文档(随机文档id) |
| POST | localhost:9200/索引名称/类型名称/文档id/_update | 修改文档 |
| DELETE | localhost:9200/索引名称/类型名称/文档id | 删除文档 |
| GET | localhost:9200/索引名称/类型名称/文档id | 查询文档通过文档id |
| POST | localhost:9200/索引名称/类型名称/_search | 查询所有数据 |
复杂查询
- 排序
2. 分页
- 高亮
自定义高亮条件
- 模糊查询 在布尔里面
- 布尔查询
- must ,所有条件都要符合,类似 mysql里面的 where 条件中的 and
- should 有一个条件符合即可,类似mysql里面的where 条件中的 or
- must_not 不是条件中的内容,即可查询出来,比如年龄不是25岁的
- filter 过滤器,附加一些过滤的条件
| 名称 | 描述 |
|---|---|
| gt | 大于 |
| gte | 大于等于 |
| It | 小于 |
| Ite | 小于等于 |
- 精准查询
trem精确查找
term查询是直接通过倒排索引指定的词条进行精确查找的
关于分词:
term,会直接查询精确的
match,会使用分词器解析(先分析文档,在通过分析的文档进行查询)
两个类型
text 会被分词器解析
keyword 不会被分词器解析