Elasticsearch 基础篇
本文最后更新于 1115 天前,其中的信息可能已经有所发展或是发生改变。

索引

创建索引

非结构化

PUT /employee/_doc/1
{
    "settings": {
        "number_of_shards": 1 //主分片数,以后无法扩展
        "number_of_replicas": 1 //副本分片数,随便扩展
    }
}

结构化

PUT /employee/_doc/1
{
    "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 1
    },
    "mappings": {
        "properties": {
            "name": {"type": "text"},
            "age": {"type": "integer"}
        }
    }
}
基础类型
类型说明
text字符串,会对字段进行分词
keyword字符串,不会对字段分词
date时间
long长整型
integer整型
short短整型
double浮点型
boolean布尔型
array数组
jsonjson字符串
ipIP地址
geo_point地理位置,经纬度

删除索引

DELETE /employee

文档

新增文档

POST /employee/_create/1
{
    "name": "Chris Evans",
    "age": 31
}

修改文档

全量修改

PUT /employee/_doc/1
{
    "name": "Captain America",
    "age": 30
}

指定字段修改

POST /employee/_update/1
{
    "doc": {
        "name": "Steve Rogers"
    }
}

删除文档

DELETE /employee/_doc/2 //通过ID删除

查询文档

GET /employee/_doc/1 //通过ID查询

无条件查询

GET /employee/_search //查询全部
GET /employee/_search
{
    "query": {
        "match_all": {}
    }
}

关键字查询

GET /employee/_search
{
    "query": {
        "match": {"name": "steve"}
    }
}

排序 (sort)

GET /employee/_search
{
    "query": {
        "match_all": {}
    },
    "sort": [
        {"age": {"order": "desc"}}
    ]
}

分页 (from & size)

GET /employee/_search
{
    "query": {
        "match_all": {}
    },
    "from": 0,
    "size": 10
}

聚合 (aggs)

GET /employee/_search
{
    "query": {
        "match": {"name": "steve"}
    },
    "aggs": {
        "my_age_group": {
            "terms": {"field": "age"}
        }
    }
}

过滤 (filter)

GET /employee/_search
{
    "query": {
        "bool": {
            "filter": [
                {"match": {"name": "steve job"}}, //match会分词
                {"term": {"age": 30}} //term不会分词
            ]
        }
    }
}

如果觉得本文对您有帮助,记得收藏哦~
上一篇
下一篇