当前位置: 首页 > article >正文

【Elasticsearch】Docker安装和基本概念

1. Docker安装ES

拉取es镜像

docker pull elasticsearch:8.5.3

创建网络

docker network create oj-network

启动es

docker run -d --name oj-es-dev -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" -e "discovery.type=single-node" -v D:\javacode\oj-byte\deploy\dev\elasticSearch\es-plugins:/usr/share/elasticsearch/plugins -e "xpack.security.enabled=false" --privileged --network oj-network -p 9200:9200 -p 9300:9300 elasticsearch:8.5.3

D:\javacode\oj-byte\deploy\dev\elasticSearch\es-plugins(你想要挂载的目录地址)

访问9200端口,验证启动是否成功

2. 安装Kibana

Kibana是ElasticSearch的数据可视化和实时分析的工具。通过Kibana,用户可以搜索、查看和与存储在Elasticsearch索引中的数据进行交互,执行高级数据分析,并通过各种图表、表格和地图将数据可视化。

2.1. 拉取Kibana镜像

docker pull kibana:8.5.3

2.2. 启动kibana容器

docker run -d --name oj-kibana-dev -e "ELASTICSEARCH_HOSTS=http://oj-es-dev:9200" -e "I18N_LOCALE=zh-CN" -p15601:5601 --net=oj-network kibana:8.5.3

3. ES数据模型中的基本概念

ES数据模型中有一些基本概念,了解这些概念后可以更好的使用ES。

3.1. 索引(index)

Elasticsearch中存储数据的逻辑单位,类似于关系型数据库中的表。

(类型type,原本是在索引(lndex)内进行的逻辑细分,但后来发现企业研发为了增强可阅读性和可维护性制订的规范约束,同一个索引下很少还会再使用type进行逻辑拆分(如同一个索引下既有订单数据又有评论数据),因而在6.0.0版本之后,此定义废弃。所以index的级别也就下降到表了)。

一个集群里可以定义多个索引,如客户信息索引、商品分类索引、商品索引、订单索引、评论索引等等,分别定义自己的数据结构。索引命名要求全部使用小写,建立索引、搜索、更新、删除操作都需要用到索引名称。

3.2. 文档(document)

索引中的基本数据单元,类似于关系型数据库中的一行数据。

一个文档是一个可被索引的基础信息单元,Document(文档)是JSON格式的,Document 就像是MySQL中某个 Table 里面每一行的数据,Document中可以包含多个字段,每个字段可以是文本、数字、日期等类型

3.3. 字段(field)

文档的属性,类似于关系型数据库中的列。 每个字段有一个名称和值,可以是简单值(如字符串、数字)或复杂值(如数组、对象)。

3.4. 映射(mapping)

定义索引的结构,包括字段名、字段类型(如textkeywordinteger)等。

Mapping是ES中的一个很重要的内容,它类似于传统关系型数据中table的schema(定义了数据库中的数据如何组织,包括表的结构、字段的数据类型、键的设置(如主键、外键)等),用于定义一个索引的数据的结构(mapping中主要包括字段名、字段数据类型和字段索引类型。)。在ES中,我们可以手动创建mapping,也可以采用默认创建方式。在默认配置下,ES可以根据插入的数据自动地创建mapping。

4. 感受基本的增删改查

进入开发者工具

在开发者工具中,我们可以在左侧编写相应的命令对es当中的数据进行操作,结果会呈现在右侧。

4.1. 增加数据

PUT /employee/_doc/1
{
 "first_name" : "John",
 "last_name" : "Smith",
 "age" : 25,
 "about" : "I love to go rock climbing",
 "interests": [ "sports", "music" ]
}
PUT /employee/_doc/2
{
 "first_name" : "Jane",
 "last_name" : "Smith",
 "age" : 32,
 "about" : "I like to collect rock albums",
 "interests": [ "music" ]
}
PUT /employee/_doc/3
{
 "first_name" : "Douglas",
 "last_name" : "Fir",
 "age" : 35,
 "about": "I like to build cabinets",
 "interests": [ "forestry" ]
}

代码就是向employee索引(index)中添加文档(document),每个文档有自己的id标识。

4.2. 查询

4.2.1. 根据id查询

GET /employee/_doc/2

4.2.2. 查询所有数据

GET /employee/_search

4.3. 删除

4.3.1. 删除某个数据

DELETE /employee/_doc/1

4.3.2. 删除索引

DELETE /employee

4.4. 修改

POST /employee/_update/3
{
"doc" : {
"last_name" : "mark"
}
}

http://www.kler.cn/a/427605.html

相关文章:

  • DevOps工程师成长路线图
  • 面试小札:线程池
  • 下载谷歌浏览器的官方离线安装包
  • 【论文解读】MD-VQA: Multi-Dimensional Quality Assessment for UGC Live Videos
  • TCP编程案例
  • 基于Matlab的卷积神经网络(CNN)苹果分级检测系统
  • 视频编辑技术:一键生成混剪视频的AI技术应用
  • scss文件内引入其他scss文件报错
  • 十九(GIT2)、token、黑马就业数据平台(页面访问控制(token)、首页统计数据、登录状态失效)、axios请求及响应拦截器、Git远程仓库
  • Nginx日常运维方法Linux版
  • 【LeetCode】80.删除有序数组中的重复项II
  • 目前国内【齿轮检测仪】行业整体较为分散,行业竞争日趋激烈
  • 斗地主之顺子(Java Python JS C++ C )
  • 《Java核心技术I》线程局部变量
  • python包之click
  • 使用xtrabackup对MySQL5.7数据库进行物理备份
  • 四个人排序——c++选择结构提高
  • 【调试工具】USB 转 UART 适配器(USB 转 TTL)
  • 华为 Mate 70 系列智能手机将运行不兼容 Android 的鸿蒙
  • 深入解析汽车对自行车手纵向成人碰撞测试(CBLA)