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