IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> ElasticSearch学习(一):HTTP操作ElasticSearch -> 正文阅读

[网络协议]ElasticSearch学习(一):HTTP操作ElasticSearch

目录

一、索引操作

????????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/?,看看能否出现正常的页面:

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

一、索引操作

????????1、创建索引

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

? ? ? ? 首先我们打开postman发送请求

http://127.0.0.1:9200/shopping

? ? ? ? ?需要注意的是,创建索引使用的是PUT请求

? ? ? ? 有回应说明创建成功了:

? ? ? ? 2、查看索引?

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

??

? ? ? ? 3、查看全部索引?

? ? ? ? 使用GET命令:?

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

??

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

? ? ? ? 因为我们只创建了shopping这一个索引,所以只会显示一个索引。?

? ? ? ? 对于其中表头的含义:

?????????四、删除索引

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

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

?二、文档操作

? ? ? ? 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 
}

?

? ? ? ? 发送请求后的响应体:

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

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

?

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

? ? ? ? 2、查询文档?

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

? ? ? ? 3、修改文档?

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

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

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

?

? ? ? ? 4、局部修改文档?

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

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

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

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

?

? ? ? ? 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)。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:25:55  更:2022-04-06 16:26:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:46:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码