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"}
}
}
}