ElasticSearch学习笔记-入门-HTTP

一、索引操作

创建索引

对比关系型数据库,创建索引就等同于创建数据库

在PostMan中,向ES服务器发PUT请求:http://127.0.0.1:9200/shopping

获取索引

在PostMan中,向ES服务器发GET请求:http://127.0.0.1:9200/shopping

localhost:9200/_cat/indices?v  获取所有索引详细信息

删除索引

在PostMan中,向ES服务器发DELETE请求:http://127.0.0.1:9200/shopping

二、文档操作

创建文档

在PostMan中,向ES服务器发POST请求:http://127.0.0.1:9200/shopping/_doc/1001

_doc代表创建的是文档,1001为创建数据的id,_doc改成_create也是生效的

body:

{

    "title":"小米手机",

    "category":"小米",

    "images":"http://www.gulixueyuan.com/xm.jpg",

    "price":3999.00

}

result:

{

    "_index": "shopping",

    "_id": "1001",

    "_version": 1,

    "result": "created",

    "_shards": {

        "total": 2,

        "successful": 1,

        "failed": 0

    },

    "_seq_no": 1,

    "_primary_term": 1

}

查询文档:

 在PostMan中,向ES服务器发GET请求:http://127.0.0.1:9200/shopping/_doc/1001

http://127.0.0.1:9200/shopping/_search  查询所有文档

全量修改文档:

http://127.0.0.1:9200/shopping/_doc/1001  在PostMan中,向ES服务器发PUT请求:http://127.0.0.1:9200/shopping/_doc/1001

局部修改文档:

   在PostMan中,向ES服务器发POST请求:http://127.0.0.1:9200/shopping/_doc/1001http://127.0.0.1:9200/shopping/_update/1001http://127.0.0.1:9200/shopping/_doc/1001

{

    "doc" :{

        "title" : "华为手机"

}

}

删除文档:

 在PostMan中,向ES服务器发DELETE请求:http://127.0.0.1:9200/shopping/_doc/1001

条件查询:

GET请求:http://127.0.0.1:9200/shopping/_search?q=category:小米

或者http://127.0.0.1:9200/shopping/_search

Body:

{

    "query":{

        "match" : {

            "category" : "小米"

        }

    }

}

分页查询:

GET请求 http://127.0.0.1:9200/shopping/_search

Body:

{

    "query":{

        "match_all" : {

           

        }

    },

    "from" : 0,

    "size" : 2,

    "_source" : ["title"]

}

查询排序:

 GET请求 http://127.0.0.1:9200/shopping/_search

{

    "query":{

        "match_all" : {

           

        }

    },

    "from" : 0,

    "size" : 2,

    "_source" : ["title"],

    "sort":{

        "price" : {

            "order" : "desc"

        }

    }

}

多条件查询

GET请求:http://127.0.0.1:9200/shopping/_search

Must:

Body:

{

    "query": {

        "bool": {

            "must": [

                {

                    "match": {

                        "category": "小米"

                    }

                },

                {

                    "match": {

                        "price": 3999.00

                    }

                }

            ]

        }

    }

}

Should:

{

    "query": {

        "bool": {

            "should": [

                {

                    "match": {

                        "category": "小米"

                    }

                },

                {

                    "match": {

                        "category": "华为"

                    }

                }

            ]

        }

    }

}

范围查询:

 GET请求:http://127.0.0.1:9200/shopping/_search

Body:

{

    "query": {

        "bool": {

            "should": [

                {

                    "match": {

                        "category": "小米"

                    }

                },

                {

                    "match": {

                        "category": "华为"

                    }

                }

            ],

            "filter": {

                "range": {

                    "price": {

                        "gt": 2000

                    }

                }

            }

        }

    }

}

当category从”小米“改为”米“后,会发现还是能查询到数据,主要原因是因为保存文档数据的时候,ES会将数据文字进行分词拆解操作,并将拆解后的数据保存到倒排索引当中。这样即使使用一部分数据,也能查询到结果。这种检索方式称之为全文检索。

ES也会将查询条件进行分词再去倒排索引中进行匹配,如果条件改成”小华“之后,数据反倒会更多,因为”华为“和”小米“都会被检索到。

完全匹配&高亮查询:

GET请求:http://127.0.0.1:9200/shopping/_search

Body:

{

    "query":{

        "match_phrase":{

            "category" : "小"

        }

    },

    "highlight" : {

        "fields" : {

            "category" : {}

        }

    }

}

Response:

聚合查询:

GET:http://127.0.0.1:9200/shopping/_search

Body:

{

    "aggs" : { //聚合操作

        "price_proup":{ //名称,随意起名

            "terms" : { //分组操作

                "field" : "price" //分组字段

            }

        }

    }

}

Result:

求平均值:

{

    "aggs" : { //聚合操作

        "price_avg":{ //名称,随意起名

            "avg" : { //分组操作

                "field" : "price" //分组字段

            }

        }

    }

}

Result:

映射关系:

创建映射关系:

PUT:localhost:9200/user/_mapping

Body:

{

    "properties": {

        "name": {

            "type": "text",

            "index": true

        },

        "sex": {

            "type": "keyword",

            "index": true

        },

        "tel": {

            "type": "keyword",

            "index": false

        }

    }

}

Type为text代表可以分词匹配,keyword代表不能分词匹配,index代表可不可以被索引

查询映射关系

GET:localhost:9200/user/_mapping

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值