Elasticsearch 入门:搭建高性能搜索集群

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 【9月更文第2天】Elasticsearch 是一个分布式的、RESTful 风格的搜索和分析引擎,基于 Apache Lucene 构建。它能够处理大量的数据,提供快速的搜索响应。本教程将指导你如何从零开始搭建一个基本的 Elasticsearch 集群,并演示如何进行简单的索引和查询操作。

Elasticsearch 是一个分布式的、RESTful 风格的搜索和分析引擎,基于 Apache Lucene 构建。它能够处理大量的数据,提供快速的搜索响应。本教程将指导你如何从零开始搭建一个基本的 Elasticsearch 集群,并演示如何进行简单的索引和查询操作。

一、环境准备

在开始之前,请确保你的环境中已经安装了 Java。Elasticsearch 要求至少 Java 8 或更高版本。你可以通过以下命令检查 Java 版本:

java -version

二、安装 Elasticsearch

  1. 下载 Elasticsearch

    访问 Elasticsearch 的官方下载页面 https://www.elastic.co/downloads/elasticsearch,下载适合你操作系统的版本。这里以 Linux 为例,下载 .tar.gz 文件。

  2. 解压并安装

    将下载的文件解压到你想要安装 Elasticsearch 的目录下。

    tar xzf elasticsearch-7.16.3-linux-x86_64.tar.gz
    

    移动解压后的文件夹到 /usr/local 目录下,并重命名为 elasticsearch

    sudo mv elasticsearch-7.16.3 /usr/local/elasticsearch
    
  3. 配置环境变量

    为了让命令行工具可以全局访问 Elasticsearch,可以在 .bashrc 文件中添加环境变量。

    echo 'export PATH=$PATH:/usr/local/elasticsearch/bin' >> ~/.bashrc
    source ~/.bashrc
    

三、启动单节点集群

在生产环境中,Elasticsearch 通常以多节点集群的形式部署,但为了简单起见,我们先从启动一个单节点集群开始。

./elasticsearch

默认情况下,Elasticsearch 会在本地监听端口 9200(HTTP API)和 9300(节点间通信)。如果你想要修改这些设置,可以编辑 config/elasticsearch.yml 文件。

四、搭建多节点集群

接下来我们将搭建一个多节点集群,这将涉及多个 Elasticsearch 实例之间的通信。

  1. 准备多台机器或虚拟机

    假设你已经有两台机器准备好了,分别为 node1node2。确保它们之间网络互通。

  2. 配置集群

    在每台机器上编辑 config/elasticsearch.yml 文件,设置集群名、节点名以及集群内的通信地址。

    # node1
    cluster.name: my_elasticsearch_cluster
    node.name: node1
    network.host: 192.168.1.100  # node1 的 IP 地址
    
    discovery.seed_hosts: ["192.168.1.100", "192.168.1.101"]
    cluster.initial_master_nodes: ["node1", "node2"]
    
    # node2
    cluster.name: my_elasticsearch_cluster
    node.name: node2
    network.host: 192.168.1.101  # node2 的 IP 地址
    
    discovery.seed_hosts: ["192.168.1.100", "192.168.1.101"]
    cluster.initial_master_nodes: ["node1", "node2"]
    
  3. 启动节点

    分别在两台机器上启动 Elasticsearch。

    ./elasticsearch
    

五、索引和查询操作

一旦集群启动成功,就可以通过 HTTP API 对 Elasticsearch 进行索引和查询操作。

  1. 安装 curl 工具

    如果你还没有安装 curl,可以通过以下命令安装:

    sudo apt-get install curl
    
  2. 索引文档

    创建一个名为 my_index 的索引,并插入一条文档。

    ``sh curl -X POST "localhost:9200/my_index/_doc" -H 'Content-Type: application/json' -d' { "title": "Elasticsearch 入门", "author": "张三", "tags": ["elasticsearch", "search", "tutorial"] } '

  3. 查询文档

    使用简单的匹配查询来检索文档。

    ```sh
    curl -X GET "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
    {
    "query": {

    "match": {
      "title": "入门"
    }
    

    }
    }
    '`

六、扩展与监控

随着集群规模的增长,你可能需要进一步配置 Elasticsearch 的集群健康状态监控、数据分片策略等。此外,还可以使用 Kibana 来可视化集群的状态和日志数据。

结论

通过以上步骤,你已经成功搭建了一个基本的 Elasticsearch 集群,并学会了如何进行简单的索引和查询操作。Elasticsearch 是一个功能强大的工具,随着你对它的深入了解,你会发现更多高级特性和应用场景。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
12天前
|
存储 关系型数据库 MySQL
浅谈Elasticsearch的入门与实践
本文主要围绕ES核心特性:分布式存储特性和分析检索能力,介绍了概念、原理与实践案例,希望让读者快速理解ES的核心特性与应用场景。
|
17天前
|
存储 缓存 监控
|
3天前
|
存储 自然语言处理 关系型数据库
ElasticSearch基础3——聚合、补全、集群。黑马旅游检索高亮+自定义分词器+自动补全+前后端消息同步
聚合、补全、RabbitMQ消息同步、集群、脑裂问题、集群分布式存储、黑马旅游实现过滤和搜索补全功能
ElasticSearch基础3——聚合、补全、集群。黑马旅游检索高亮+自定义分词器+自动补全+前后端消息同步
|
18天前
|
存储 缓存 算法
Elasticsearch 集群节点间的通信
【8月更文挑战第25天】
34 6
|
18天前
|
存储 机器学习/深度学习 运维
Elasticsearch 集群节点的角色与职责
【8月更文挑战第25天】
39 6
|
18天前
|
存储 网络协议 搜索推荐
|
17天前
|
存储 负载均衡 算法
|
17天前
|
存储 缓存 监控
|
13天前
|
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
|
28天前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】

相关产品

  • 检索分析服务 Elasticsearch版