【Elasticsearch】结合Postman/ApiPost 快速入门

        相比于MySQL那种关系型数据库,是采用正排索引,也就是根据主键去找其对应的行数据。而Elasticsearch这个NoSQL,是采用倒排索引,根据输入的某值返回其它整行的数据。而Elaticsearch是采用RESTful风格的数据库访问,以下就是测试案例。

Put

        用来创建索引,只需要在路径后加上想要的索引名称即可以添加索引。如user就是索引名称。这里需要注意的是,如果这个方法发送第二次就会出现错误。

        从第二次发送的这个报错信息可以看出,是因为这索引名称已经存在了所以就会出现错误,这就是幂等性问题。幂等性:同一个操作的重复执行都会返回同一个结果。所以说这个Put方法对于同一个索引名称只能够使用一次操作。

Get

查询单个索引

查询全部索引

Delete

POST

        这里需要注意的是路径上的"_doc"是必定的关键字。这个Post方法就是非幂等性的,每次插入的时候返回的值却是不同的。具体以下面两张图返回的_id可以看出,返回的id不同,所以就不属于幂等性。这里我所给的JSON数据如下。

{

    "name": "zhangsan",

    "age": 18,

    "sex": "男"

}

        当然,我测试过能够将id改为自己想给的值,还是可以成功的。

从这里开始要注意以上的操作当这个索引中有三个值:

1、{"name": "zhangsan",age: 18}

2、{"name": "zhangsan",age: 18}

3、{"name": "wangwu",age: 18}

主键查询

全查询

修改数据

        采用Put方法去更新的话表示全量数据更新。也就是说把这_id = 1的这行数据全部替换成我们想要的数据。但其实我们经常只是局部数据更新。并不需要全部进行修改。

        查询一下更新后的数据。http://localhost/user/_doc/1。可以看到"zhangsan"变为"lisi"了

        那么就需要采用Post方法去实现局部数据更新。需要注意的是路径上已经不是"_doc"了,而是需要改为"_update"。采用前者表示新增,采用后者表示更新。

  查询一下更新后的数据。http://localhost/user/_doc/1。可以看到"lisi"变为"wangwu"了

条件查询

单条件查询

路径

        需要在方法路径的"_search"后加上"?q=name:zhangsan"。其中"q"表示query,而"name"表示查询条件,"zhangsan"表示查询内容。

请求体

        在请求体放入以下JSON格式。其中match中的就是查询条件。

{

    "query": {

        "match": {

            "name": "zhangsan"

        }

    }

}

多条件查询

全匹配

        请求头中的JSON数据如下,其中"must"表示的就是全匹配,即都需要满足"match"中的条件。条件为:name = "zhangsan" AND age = 18

{

    "query": {

        "bool": {

            "must": [

                {

                    "match": {

                        "name": "wangwu"

                    }

                },

                {

                    "match": {

                        "age": 18

                    }

                }

            ]

        }

    }

}

部分匹配

        而改为部分匹配,则需要将"must"改为"should"。条件为:name = "wangwu" OR age = 18

{

    "query": {

        "bool": {

            "should": [

                {

                    "match": {

                        "name": "wangwu"

                    }

                },

                {

                    "match": {

                        "age": 18

                    }

                }

            ]

        }

    }

}

分页查询

        也是采用Get方法,在请求体中加入以下JSON数据。其中"from"表示当前页,"size"表示每页条数。这其实在Java中的MyBatis框架中也有,只不过不叫"from",而是叫"page"。

{

    "query": {

        "match_all": {}

    },

    "from": 0,

    "size": 2

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch是一款非常强大的开源搜索引擎,它可以帮助我们从海量数据中快速找到需要的内容。它是elastic stack(ELK)的核心组件之一,结合kibana、Logstash、Beats等工具,被广泛应用在日志数据分析、实时监控等领域。\[1\] 在Elasticsearch中,为了提高搜索的性能,它使用了倒排索引的概念。倒排索引是指将文档中的每个词都建立索引,然后通过这些索引来快速定位到包含该词的文档。当我们向Elasticsearch插入一条记录时,它会将记录中的字段建立倒排索引,以便能够快速搜索和检索数据。\[2\] 为了能够快速找到某个词,Elasticsearch使用了Term Dictionary。Term Dictionary将所有的词进行排序,并使用二分法查找词,类似于我们在学校时老师教我们使用字典的方式。这种查询方式类似于传统关系型数据库的B-Tree索引方式,但并不是Elasticsearch快速的原因。\[3\] 以上是elasticsearch快速入门介绍。 #### 引用[.reference_title] - *1* [Elasticsearch快速入门](https://blog.csdn.net/ks_1998/article/details/121237513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【ElasticSearchElasticSearch 快速入门(精讲)](https://blog.csdn.net/m0_45067620/article/details/120377816)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值