ElasticSearch学习笔记(二) Elasticsearch安装及索引基础操作

本文涉及的产品
性能测试 PTS,5000VUM额度
应用实时监控服务-应用监控,每月50GB免费额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 前面了解了Elasticsearch的一些基本概念,现在我们开始学习怎么使用Elasticsearch。在使用之前先需要准备一个Elasticsearch环境,我们需要使用到Elasticsearch及Kibana(Kibana 是为 Elasticsearch设计的开源分析和可视化平台)。这里我们使用docker-compose在Linux环境中安装一套Elasticsearch及Kibana。

​ 前面了解了Elasticsearch的一些基本概念,现在我们开始学习怎么使用Elasticsearch。在使用之前先需要准备一个Elasticsearch环境,我们需要使用到Elasticsearch及Kibana(Kibana 是为 Elasticsearch设计的开源分析和可视化平台)。这里我们使用docker-compose在Linux环境中安装一套Elasticsearch及Kibana。

前期准备

​ Docker Compose 是 Docker 官方提供的一种工具,用于定义和运行多个 Docker 容器的应用程序。它基于 Docker 命令行工具,提供了一个简单的 YAML 文件格式,用于定义多个容器之间的关系和配置,然后可以使用单个命令来启动、停止和管理这些容器。使用 Docker Compose,可以轻松地管理和部署一个复杂的应用程序。

安装docker

# 安装docker-ce版本
yum install -y docker-ce
# 启动docker并设置开机启动
systemctl enable --now docker
#查看docker版本
docker --version

最后能够正常显示docker版本即表示docker安装成功

安装docker-compose

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
docker-compose --version

到这一步我们安装好了docker-compose环境,有了docker-compose我们可以快速的将Elasticsearch和Kibana安装完成。这里我们使用elasticsearch 7.11.2

Elasticsearch及Kibana安装

创建docker-compose文件

创建目录

mkdir -p /opt/elasticsearch && cd $_
vim docker-compose.yml

编写docker-compose.yml文件


version: '3'

services:
  elasticsearch:
    image: elasticsearch:7.11.2
    container_name: elasticsearch
    volumes:
    - ./config:/usr/share/elasticsearch/config  #esconfig持久化到本地
    - ./plugins:/usr/share/elasticsearch/plugins
    - ./data:/usr/shar/elasticsearch/data
    environment:
    - discovery.type=single-node
    - TZ=Asia/shanghai
    - ES_JAVA_OPTS= -Xms2g -Xmx2g  # 设置 JVM 内存参数
    ports:
    - "9200:9200"
    - "9300:9300"
    restart: always
  kibana:
    image: kibana:7.11.2
    container_name: kibana
    depends_on: # 服务依赖
     - elasticsearch
    environment:
     - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 # 指定elasticsearch地址
     - elasticsearch.ssl.verify=false
     - TZ=Asia/shanghai
    ports:
     - "5601:5601"
    restart: always

使用 docker-compose up -d启动如图

到此我们就完成了Elasticsearch环境的安装工作

Elasticsearch基础操作

索引操作

1.创建索引

在Kibana控制台中输入如下命令,并执行,如果创建的索引名称已经存在,会返回错误信息。


PUT product-test

# 返回结果
{
  "acknowledged" : true, 
  "shards_acknowledged" : true,
  "index" : "product-test"
}
字段 含义
acknowledged 索引操作是否成功: true-成功,false-失败
shards_acknowledged 是否已成功将操作应用于所有相关的分片
index 索引名称

创建一个带有类型及字段的索引

PUT product-test
{
    "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 1
    },
    "mappings": {
        "properties": {
            "id": {
                "type": "long"
            },
            "name": {
                "type": "text"
            },
            "image": {
                "type": "keyword"
            },
            "price": {
                "type": "double"
            },
            "quantity":{
              "type":"integer"
            }
        }
    }
}

​ 这里我们创建了一个分片数和副本数都为1的索引,里面包含5个字段: 商品名称(name),商品图片(image),商品价格(price), 库存数量(quantity),类型各不相同。

​ 在实际使用中Elasticsearch的分片和副本数的选择应该考虑以下几个因素:

  1. 数据量:如果你的数据量很小,可以选择较少的分片和副本数。但如果数据量很大,就需要增加分片和副本数来提高搜索效率和可用性。
  2. 查询负载:如果你的查询负载很大,可以增加分片和副本数来分散查询负载,提高搜索效率。但如果查询负载很小,可以选择较少的分片和副本数。
  3. 硬件资源:分片和副本数的增加会占用更多的硬件资源,包括磁盘空间、内存和CPU等。因此,在选择分片和副本数时需要考虑硬件资源的限制。
  4. 可用性:增加副本数可以提高系统的可用性,因为当某个节点故障时,其他副本可以继续提供服务。但是,增加副本数也会占用更多的硬件资源。

综上所述,选择分片和副本数需要根据具体的业务需求和硬件资源来进行权衡。一般来说,建议在数据量较大、查询负载较高、硬件资源充足的情况下增加分片和副本数,以提高搜索效率和可用性。

2.查看索引

查看Es集群中所有索引信息使用如下命令

GET /_cat/indices?v

其中,GET为HTTP请求方法,/_cat/indices为API的路径,v表示以表格形式输出结果,可以更清晰地查看索引的相关信息。

执行该请求后,Es会返回一个表格,包含当前集群中所有索引的相关信息,例如索引名称、状态、分片数、副本数、文档数、存储大小等。这些信息可以用于监控和管理集群中的索引。

#查看单个索引

GET product-test

# 返回结果
{
  "product-test" : {
    "aliases" : { },
    "mappings" : { },
    "settings" : {
      "index" : {
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "data_content"
            }
          }
        },
        "number_of_shards" : "1",
        "provided_name" : "product-test",
        "creation_date" : "1686209323359",
        "number_of_replicas" : "1",
        "uuid" : "gk1bWBr-SQSOdkikbqbZnA",
        "version" : {
          "created" : "7120099"
        }
      }
    }
  }
}
字段 含义
aliases 别名
number_of_shards 主分片数量
number_of_replicas 副本分片数量
version 当前索引的版本,每一次修改,版本会跟着变化

获取索引中所有类型的字段信息

GET product-test/_mapping

#返回结果
{
  "product-test" : {
    "mappings" : {
      "properties" : {
        "name" : {
          "type" : "text"
        },
        "picture_url" : {
          "type" : "keyword"
        },
        "price" : {
          "type" : "double"
        },
        "quantity" : {
          "type" : "integer"
        }
      }
    }
  }
}

3.打开/关闭索引

#关闭索引
POST product-test/_close

#开启索引
POST product-test/_open

被关闭的索引是无法对索引的文档进行操作的

4.删除索引

DELETE product-test

#返回
{
  "acknowledged" : true
}
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
79 5
|
2月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
71 3
|
4月前
|
存储 API 数据库
检索服务elasticsearch索引(Index)
【8月更文挑战第23天】
75 6
|
1月前
|
存储 缓存 监控
优化Elasticsearch 索引设计
优化Elasticsearch 索引设计
26 5
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
54 5
|
1月前
|
存储 JSON 关系型数据库
Elasticsearch 索引
【11月更文挑战第3天】
43 4
|
1月前
|
测试技术 API 开发工具
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
49 8
|
2月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
244 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
JSON 自然语言处理 数据库
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入
概念、ik分词器、倒排索引、索引和文档的增删改查、RestClient对索引和文档的增删改查
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入