【入门】Elasticsearch基本语句

一、概述

Elasticsearch,简称为 ES, ES 是一个开源的高扩展的分布式全文搜索引擎,同时也是面向文档型数据库,在ES中一条数据就是一个文档。在学习ES之前需要先了解一些概念:

Index(索引):不同于Mysql的索引,ES中的索引相当于Mysql的数据库,当我们向ES插入数据的时候,需要指定要插入到哪个索引之下。

Document(文档):ES中存储的就是一条条文档,ES可以通过关键字检索到相应的文档。

Fields(字段):与MySQL中的字段相同

二、使用

1.索引-创建

在Postman中,向ES服务器发送PUT请求:

localhost:9200/lol

请求后,服务器返回响应:

{
    
    
    "acknowledged": true,		//响应结果
    "shards_acknowledged": true,//分片结果
    "index": "lol"				//索引名称
}

2.索引-查询

在 Postman 中,向 ES 服务器发 GET 请求 :

localhost:9200/_cat/indices?v

3.文档-创建

在Postman中,向ES服务器发送POST请求:

localhost:9200/lol/_doc

请求体JSON内容为:

{
    
    
    "名字":"卡沙",
    "称号":"虚空之女",
    "定位":"下路、中路"
}

4.主键查询&全查询

全查询:在 Postman 中,向 ES 服务器发 GET 请求 :

localhost:9200/lol/_search

响应:

{
    
    
    "took": 442,
    "timed_out": false,
    "_shards": {
    
    
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
    
    
        "total": {
    
    
            "value": 5,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "uI6dVoEB32Jj3QrMO2F-",
                "_score": 1.0,
                "_source": {
    
    
                    "名字": "卡沙",
                    "称号": "虚空之女",
                    "定位": "下路、中路"
                }
            },
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "vY4HV4EB32Jj3QrMIGHs",
                "_score": 1.0,
                "_source": {
    
    
                    "名字": "易",
                    "称号": "无极剑圣",
                    "定位": "打野"
                }
            },
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "vo4HV4EB32Jj3QrMiGF0",
                "_score": 1.0,
                "_source": {
    
    
                    "名字": "艾希",
                    "称号": "寒冰射手",
                    "定位": "下路、辅助"
                }
            },
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "v44HV4EB32Jj3QrMtmEa",
                "_score": 1.0,
                "_source": {
    
    
                    "名字": "孙悟空",
                    "称号": "齐天大圣",
                    "定位": "上路、打野"
                }
            },
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "wI4HV4EB32Jj3QrMzGHj",
                "_score": 1.0,
                "_source": {
    
    
                    "名字": "阿狸",
                    "称号": "九尾狐妖",
                    "定位": "中单"
                }
            }
        ]
    }
}

主键查询:

localhost:9200/lol/_doc/vY4HV4EB32Jj3QrMIGHs
{
    
    
    "_index": "lol",
    "_type": "_doc",
    "_id": "vY4HV4EB32Jj3QrMIGHs",
    "_version": 1,
    "_seq_no": 1,
    "_primary_term": 1,
    "found": true,
    "_source": {
    
    
        "名字": "易",
        "称号": "无极剑圣",
        "定位": "打野"
    }
}

5.条件查询

在 Postman 中,向 ES 服务器发 GET 请求 :

localhost:9200/lol/_search

同时带上查询条件:

{
    
    
    "query":{
    
    
        "match":{
    
    
            "名字":"齐天大圣"
        }
    }
}

查询结果:

{
    
    
    "took": 262,
    "timed_out": false,
    "_shards": {
    
    
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
    
    
        "total": {
    
    
            "value": 1,
            "relation": "eq"
        },
        "max_score": 3.4526575,
        "hits": [
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "v44HV4EB32Jj3QrMtmEa",
                "_score": 3.4526575,
                "_source": {
    
    
                    "名字": "孙悟空",
                    "称号": "齐天大圣",
                    "定位": "上路、打野"
                }
            }
        ]
    }

6.多条件查询

查询条件:

“must”相当于与,“should”相当于或

{
    
    
    "query":{
    
    
        "bool":{
    
    
            "must":[{
    
    
                "match":{
    
    
                    "名字":"艾希"
                }
            },{
    
    "match":{
    
    
                    "名字":"卡沙"
                }
            }]
        }
    }
}

7.全文检索

查询条件:

{
    
    
    "query":{
    
    
        "match":{
    
    
            "名字":"孙易"
        }
    }
}

响应:

{
    
    
    "took": 69,
    "timed_out": false,
    "_shards": {
    
    
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
    
    
        "total": {
    
    
            "value": 2,
            "relation": "eq"
        },
        "max_score": 1.7427702,
        "hits": [
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "vY4HV4EB32Jj3QrMIGHs",
                "_score": 1.7427702,
                "_source": {
    
    
                    "名字": "易",
                    "称号": "无极剑圣",
                    "定位": "打野"
                }
            },
            {
    
    
                "_index": "lol",
                "_type": "_doc",
                "_id": "v44HV4EB32Jj3QrMtmEa",
                "_score": 1.1508858,
                "_source": {
    
    
                    "名字": "孙悟空",
                    "称号": "齐天大圣",
                    "定位": "上路、打野"
                }
            }
        ]
    }
}

8.聚合查询

在 Postman 中,向 ES 服务器发 GET请求 :

localhost:9200/lol/_search
{
    
    
    "aggs":{
    
    //聚合操作
        "定位聚合":{
    
    
            "terms":{
    
    //分组
                "field":"定位"
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/m0_52373742/article/details/127207466