Elasticsearch
参考教程:
https://www.bilibili.com/vide...
https://gitee.com/moxi159753/...
官网文档:
https://www.elastic.co/guide/...
基本概念
- 索引(index):对逻辑数据的逻辑存储,能够了解为mysql的表
- 文档(document):次要实体,能够了解为mysql的一行记录
- 映射(mapping):文档的属性,字段,每个字段的数据类型
- 文档类型:一个索引能够有多个类型;同一索引中,同一属性文档类型必须雷同。
RESTful API
创立索引
PUT /haoke{ "settings": { "index": { "number_of_shards": "2", #分片数 "number_of_replicas": "0" #正本数 } }}
删除索引
DELETE /{索引}
不须要额定的参数
插入数据
URL规定: POST /{索引}/{类型}/{id(非必填)}
POST /haoke/user/{ "id": 1, "name": "test"}
_id为惟一标识符,id为参数
更新数据
ES中文档数据不能批改,只能笼罩更新(全量)
PUT /{索引}/{类型}/{id}
{ "id": 1, "name": "test2"}
部分更新
ES中文档数据不能批改,只能笼罩更新(全量)
POST /{索引}/{类型}/{id}/_update
{ "doc":{ "name": "test3" }}
删除数据
DELETE /{索引}/{类型}/{id}
不须要额定的参数
搜寻数据
依据ID搜寻
GET /{索引}/{类型}/{id}
不须要额定的参数
搜寻全副数据
GET /{索引}/{类型}/_search
不须要额定的参数
关键字搜寻
GET /{索引}/{类型}/_search?q={字段}:{值}
不须要额定的参数
DSL查问
POST /{索引}/{类型}/_search
例1:查问30岁的用户
{ "query" : { "match" : { "age" : 30 } }}
例2:查问大于等于30岁,名字为test的用户
{ "query": { "bool": { "filter": { "range": { "age": { "gte": 30 } } }, "must": { "match": { "name": "test" } } } }}
全文搜寻
POST /{索引}/{类型}/_search
{ "query": { "match": { "name": "test" } }}
后果高亮显示
POST /{索引}/{类型}/_search
{ "query": { "match": { "name": "test" } }, "highlight": { "fields": { "name": {} } }}
聚合
相似mysql的group by操作
{ "aggs": { "all_interests": { "terms": { "field": "age" } } }}