Elasticsearch使用教程 Docker安装ElasticSearch7.14.0 docker安装elasticsearch7.14.0完整详细教程 Elasticsearch开发教程

Docker 上安装 ElasticSearch 7.14.0 的步骤:

选择要安装的ElasticSearch 版本

Docker ElasticSearch 官方仓库

在这里插入图片描述

1、拉取 ElasticSearch 镜像

我这边选择的版本是 7.14.0,这个版本比较安全可靠,在终端中执行以下命令以拉取 docker pull elasticsearch:7.14.0

docker pull elasticsearch:7.14.0

2、创建并运行容器

使用以下命令创建一个新的 rabbitmq容器并将其启动:

docker run --name some-elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.14.0

--name 是 容器别名
将 宿主机 9200端口映射到 容器内9200
and 端口9300端口映射到 容器内9300 端口,访问宿主机端口的时候会映射到对应容器端口
-e 表示额外参数
"discovery.type=single-node" 表示 指定 Elasticsearch 节点在单节点模式下运行,即启动一个独立的 Elasticsearch 实例而不是一个多节点集群

表示 -d 表示后台运行。

关闭容器

docker stop some-elasticsearch

启动容器

docker start some-elasticsearch

重启容器

docker restart some-elasticsearch

3、elasticsearch常用端口以及作用

  • 9200端口:是用于Elasticsearch节点之间的内部通信和数据传输的端口,也称为传输层端口。

  • 9300端口:用于HTTP REST API与Elasticsearch进行通信和操作的端口。

4、测试,是否启动成功

使用浏览器打开 http://127.0.0.1:9200

http://127.0.0.1:9200

在这里插入图片描述

5、安装ElastIcSearch 可视化管理界面(elasticsearch-head)

1、拉取es-head镜像

docker pull mobz/elasticsearch-head:5

2、启动 es-head

docker run --name some-es-head -p 9100:9100  -d mobz/elasticsearch-head:5

9100表示 es-head访问端口,开启主机与容器端口映射

3、访问 es-head

容器启动之后使用浏览器访问 http://127.0.0.1:9100

http://127.0.0.1:9100

在链接地址处填写 ES 服务的地址即可
在这里插入图片描述
如果连接 Elastic Search出现跨域异常,需要配置 Elasticsearch允许跨域请求

Docker ElastIcSearch容器配置文件路径

进入容器

docker exec -it some-elasticsearch bash

找到配置文件路径

cd  /usr/share/elasticsearch/config

打开 elasticsearch.yml 文件 加上以下配置支持跨域请求

http.cors.enabled: true
http.cors.allow-origin: "*"

在这里插入图片描述

重启容器 在使用 es-head重新连接ElasticSearch

docker restart some-elasticsearch

6、Elasticsearch 关键字概念

Elasticsearch中,索引、文档和数据之间有如下关系:

  • 索引(Index):索引是Elasticsearch中数据的逻辑容器或命名空间。它类似于传统数据库中的表。一个索引可以包含多个文档,并且每个文档都属于特定的索引。你可以将索引视为对特定类型数据的分组或组织。

  • 文档(Document):文档是存储在Elasticsearch中的最小数据单元。它类似于传统数据库中的一行数据或一个文档对象。每个文档由一个唯一的ID标识符进行标识,并且以JSON格式表示。一个索引可以包含多个文档,而每个文档都有自己的字段和对应的值。

  • 数据(Data):数据是指存储在Elasticsearch索引中的实际信息。当你创建一个文档并将其添加到索引时,该文档的内容即为数据。数据可以是结构化的、半结构化的或非结构化的,因为Elasticsearch不强制要求预定义的模式或固定的字段。每个文档都可以具有不同的数据,并且可以根据需要进行灵活地更改。

Elasticsearch使用索引来组织和存储数据。索引包含多个文档,而每个文档则表示实际的数据。通过在索引下创建、更新、删除文档,你可以操作和管理Elasticsearch中的数据。

7、http接口测试

Elasticsearch 是面向文档数据库,对比关系型数据库,索引就等同于数据库

使用api获取所有索引

使用 postman GET 请求 http://127.0.0.1:9200/_cat/indices?v

在这里插入图片描述
这里请求路径中的_cat表示查看的意思, indices表示索引,所以整体含义就是查看当前ES服务器中的所有索引,类似于MySQL中的show tables
在这里插入图片描述

7.1、创建 索引(book)

使用 postman PUT 请求 http://127.0.0.1:9200/book 就是创建 book索引

在这里插入图片描述
如果已经存在 boos索引,会返回异常json信息
在这里插入图片描述

7.2、在 book索引下创建文档数据

使用 postman POST 请求 127.0.0.1:9200/book/test

JSON 数据体

{
    
    
    "bookName": "我不是药神",
    "pirce": 13.5
}

在这里插入图片描述

执行上面操作(如果 book索引不存在,会自动创建索引),在 book索引 创建 了 类型为 test的文档,同时添加一条数据保存在test文档中,es返回了当前添加数据的 _id字段,这个就是这行数据的ID, GET请求 127.0.0.1:9400/book/test/QOTZSIkByoOrU54Z-n6m 就是查询这条数据

这里注意 一个索引下只能有一个文档类型, 相当于 数据库 下只能有一个表

如果我在执行127.0.0.1:9200/book/test2 是会返回异常
在这里插入图片描述

7.3 根据ID查询文档数据

使用 postman GET 请求 127.0.0.1:9200/book/test/QOTZSIkByoOrU54Z-n6m 就是查询 _idQOTZSIkByoOrU54Z-n6m的数据(不能携带 Body JSON数据),类似于MySQL中数据的主键查询

在这里插入图片描述

这个_id 是 添加数据ES自动生成的
在这里插入图片描述

7.4、修改文档

使用 postman POST 请求 127.0.0.1:9200/book/test/QOTZSIkByoOrU54Z-n6m 就是修改 _idQOTZSIkByoOrU54Z-n6m的数据

在这里插入图片描述
再次查询, 数据成功修改
在这里插入图片描述

7.5、删除文档

使用 postman DELETE 请求 127.0.0.1:9200/book/test/QOTZSIkByoOrU54Z-n6m 就是删除 _idQOTZSIkByoOrU54Z-n6m的数据, 不能携带 body JSON数据
在这里插入图片描述

7.6、根据条件查询文档

使用 postman GET 请求 127.0.0.1:9200/book/test/_search 是查询该索引下所有的数据

url不加 test 请求 127.0.0.1:9200/book/_search 也可以查询,因为 ES索引下只有一个文档类型

在这里插入图片描述

这样查询只能够查询 10条, 加入json 查询 size 参数返回更多数据
在这里插入图片描述

查询 bookName 等于 我不是药神 的数据

{
    
    
    "query": {
    
    
        "bool": {
    
    
            "must": {
    
    
                "match": {
    
    
                    "bookName": "我不药神"
                }
            }
        }
    },
    "size": 100
}

在这里插入图片描述

更多ES API接口文档请参考官方文档 检索文档

猜你喜欢

转载自blog.csdn.net/qq_40739917/article/details/131660031