ElasticSearch学习(一):HTTP操作ElasticSearch

人生之路不会是一帆风顺的,我们会遇上顺境,也会遇上逆境,在所有成功路上折磨你的,背后都隐藏着激励你奋发向上的动机,人生没有如果,只有后果与结果,成熟,就是用微笑来面对一切小事。

导读:本篇文章讲解 ElasticSearch学习(一):HTTP操作ElasticSearch,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

一、索引操作

        1、创建索引

        2、查看索引 

        3、查看全部索引 

         四、删除索引

 二、文档操作

        1、创建文档 

        2、查询文档 

        3、修改文档 

        4、局部修改文档 

        5、删除文档

三、高级查询 

        1、全量查询 

        2、条件查询

        3、分页查询

        4、多条件查询 


        为了操作方便,我直接使用了Windows下的ElasticSearch。需要注意的一点是,ElasticSearch8以上的版本是基于java17的。

        我使用的是7.6.2的版本。下载好压缩包之后,解压,进入bin目录,双击elasticsearch.bat文件即可启动。

        启动后访问 http://localhost:9200/ ,看看能否出现正常的页面:

ElasticSearch学习(一):HTTP操作ElasticSearch

        如果能出现,说明已经正常启动了。

一、索引操作

        1、创建索引

        在ElasticSearch中创建索引 就等同于 在关系型数据库中创建数据库。

        首先我们打开postman发送请求

http://127.0.0.1:9200/shopping

ElasticSearch学习(一):HTTP操作ElasticSearch         需要注意的是,创建索引使用的是PUT请求

        有回应说明创建成功了:

ElasticSearch学习(一):HTTP操作ElasticSearch

        2、查看索引 

        查看shopping索引,命令不变,只不过要把请求方式改为GET请求。

ElasticSearch学习(一):HTTP操作ElasticSearch ElasticSearch学习(一):HTTP操作ElasticSearch 

        3、查看全部索引 

        使用GET命令: 

http://127.0.0.1:9200/_cat/indices?v

  

        请求路径中的_cat 表示查看的意思,indices 表示索引,所以整体含义就是查看当前 ES 服务器中的所有索引,就好像 MySQL 中的 show tables 的感觉。

ElasticSearch学习(一):HTTP操作ElasticSearch

        因为我们只创建了shopping这一个索引,所以只会显示一个索引。 ElasticSearch学习(一):HTTP操作ElasticSearch

        对于其中表头的含义:

ElasticSearch学习(一):HTTP操作ElasticSearch

ElasticSearch学习(一):HTTP操作ElasticSearch

         四、删除索引

        路径还是不变,请求改为DELETE,即可删除shopping索引。

ElasticSearch学习(一):HTTP操作ElasticSearch

ElasticSearch学习(一):HTTP操作ElasticSearch

        再看看索引还在不在,查看全部索引

ElasticSearch学习(一):HTTP操作ElasticSearch

 二、文档操作

        1、创建文档 

        创建文档使用POST请求。为什么和创建索引不同呢?是因为创建文档每次会生成随机的id,每次的id都不一样,而PUT请求是幂等性的,所以不能用PUT请求。

http://127.0.0.1:9200/shopping/_doc/1001

        将_doc换为_created也可以。 

{
    "title":"小米手机", 
    "category":"小米", 
    "images":"http://www.gulixueyuan.com/xm.jpg", 
    "price":3999.00 
}

 ElasticSearch学习(一):HTTP操作ElasticSearch

        发送请求后的响应体:

ElasticSearch学习(一):HTTP操作ElasticSearch

        而如果我们要使用这个id来查询的话,非常不方便。因此在创建的时候,我们可以为其自定义id。

http://127.0.0.1:9200/shopping/_doc/1001

 ElasticSearch学习(一):HTTP操作ElasticSearch

        而如果这样操作,每次的id就是一样的了,因此我们也可以使用PUT请求。

        2、查询文档 

        命令不变,改为GET请求即可。

ElasticSearch学习(一):HTTP操作ElasticSearch

        3、修改文档 

        命令和创建一样,请求类型为POST,将要改的地方在请求体中修改。 

{
    "title":"小米手机", 
    "category":"小米", 
    "images":"http://www.gulixueyuan.com/xm.jpg", 
    "price":4000.00 
}

ElasticSearch学习(一):HTTP操作ElasticSearch

        再去查询一下,发现已经更改成功了。

 

        4、局部修改文档 

        一般来说,我们都不需要修改文档中所有的东西,所以我们可以只写要修改的部分。

        因为这样的操作不是幂等性,所以只能用POST请求。

        如果写为_doc有可能会被认为是新增,所以写为_update,明确表示这是修改操作。 

http://127.0.0.1:9200/shopping/_update/1001
{
    "doc":{
        "price":3000.00
    }
}

ElasticSearch学习(一):HTTP操作ElasticSearch

 

        5、删除文档

        命令与创建文档相同,请求方式为DELETE

三、高级查询 

        ElasticSearch最核心的操作还是查询。

        1、全量查询 

        GET请求

http://127.0.0.1:9200/shopping/_search

         查询结果:

{
    "took": 2,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 2,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "pXrb6H8BMLN1rdkSJX2N",
                "_score": 1.0,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1001",
                "_score": 1.0,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3000.0
                }
            }
        ]
    }
}

        2、条件查询

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

        q后跟条件 

        但是一般来说,还是把条件放在请求体中。

        使用的命令与全量查询一样,请求体如下:

{
    "query":{
        "match":{
            "category":"小米"
        }
    }
}

        3、分页查询

        命令和全量查询一致,请求体如下:

{
    "query":{
        "match_all":{

        }
    },
    "from":0,
    "size":2
}

        from表示从第几页开始,size表示一页显示几个数据。

        4、多条件查询 

        命令与全量查询命令相同,请求体如下:

{
	"query" : {
		"bool" : {
			"must" : [
				{
					"match" : {
						"category":"小米"
					}
				},
				{
					"match" : {
						"price":3999.00
					}
				}
			]
		}
	}
}

        将查找所有条件都符合的数据(相当于and)。

        如果将must改为should,将查找满足一个或多个条件的数据(相当于or)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/125004.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!