• Elasticsearch 入门


    目录

    Elasticsearch 介绍

    概述

    场景

    Elasticsearch 基础

    基本概念

    数据结构

    Elasticsearch 安装

     系统和软件

    安装说明

    Elasticsearch 使用

    Rest Api

    集群操作

    索引操作

    文档操作 

    Java Api 集成

    SpringBoot 集成

    添加依赖

    添加配置

    添加 Entity

    添加 Service

    添加 ServiceImpl

    添加 Controller

    Elasticsearch 总结


    Elasticsearch 介绍

    概述

    Elasticsearch(ES) 在搜索和数据分析场景中的卓越表现越来越引人注目,它在很多互联网应用中起着非常关键的作用。

    Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库。

    Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎,它可以被下面这样准确的形容:

    • 一个分布式的实时文档存储,每个字段可以被索引与搜索;
    • 一个分布式实时分析搜索引擎;
    • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据。

    场景

    Elasticsearch 的使用场景非常丰富,甚至可以考虑使用 Elasticsearch 作为唯一的数据存储,以下罗列适合使用 Elasticsearch 的场景:

    • 支持全文索引场景;
    • 大数据存储和分析场景;
    • 作为非关系型数据存储,例如日志的记录和分析,常和 Kibana 可视化配合使用;
    • 数据不需要频繁更新、不需要强事务要求、数据之间关系较为简单。

    Elasticsearch 基础

    基本概念

    Elasticsearch 主要包含如下几个基本概念:

    • cluster(集群):一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能;
    • node(节点):一个节点是你集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能;
    • shard(分片):数据的最小单元块,创建一个索引的时候,可以指定分片的数量。每个分片是一个功能完善并且独立的“索引”,可以被放置到集群中的任何节点上;
    • replica(副本):分片的一份或多份拷贝叫做复制分片,或者直接叫复制。

    数据结构

    Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。数据结构包含:index(索引)、type(类型)、document(文档)、fields(字段)。

    • index(索引):索引即数据,索引是文档的载体,相当于 MySQL 的 database;
    • type(类型):在 Elasticsearch 7 版本中已经被废弃;
    • document(文档):数据内容,相当 MySQL 的行,存储 JSON 非关系型数据;
    • fields(字段):字段,相当 MySQL 的列,如果存储 JSON 结构,为 JSON 的属性。

    为了方便理解,将 Elasticsearch 里存储文档数据和关系型数据库 MySQL 存储数据的概念进行一个类比。

    Elasticsearch 安装

     系统和软件

    安装实验在 CentOS 系统进行,请提前准备,软件安装包 elasticsearch-7.8.0-linux-x86_64.tar.gz 这里获取。

    • 操作系统:CentOS Linux release 7.9.2009 (Core)
    • Elasticsearch:elasticsearch-7.8.0

    安装说明

    • 创建用户设置密码

    elasticsearch-7.8.0 出于安全考虑,需要非 root 权限运行,使用 root 权限添加用户 es

    1. useradd es && passwd es
    2. 此处输入两次密码即可
    • 修改文件描述符数量和进程数量配置 /etc/security/limits.conf
    1. ## 将以下内容追加到文件最后
    2. es soft nofile 65536
    3. es hard nofile 65535
    4. es soft nproc 4096
    5. es hard nproc 4096
    • 修改一个进程的虚拟内存数量 /etc/sysctl.conf
    1. ## 将以下内容追加到文件最后
    2. vm.max_map_count=655360
    3. ##然后执行
    4. sysctl -p
    • 切换 es 账户
    su es && cd ~
    • 解压安装包
    tar zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz && mv elasticsearch-7.8.0 es
    • 添加配置 es/config/elasticsearch.yml
    1. ## 将以下内容追加到文件最后
    2. cluster.name: elasticsearch
    3. node.name: node-1
    4. network.host: 0.0.0.0
    5. http.port: 9200
    6. cluster.initial_master_nodes: ["node-1"]
    • 启动程序
    1. bin/elasticsearch
    2. [2022-10-25T23:56:02,784][INFO ][o.e.d.DiscoveryModule ] [node-1] using discovery type [zen] and seed hosts providers [settings]
    3. [2022-10-25T23:56:04,315][INFO ][o.e.n.Node ] [node-1] initialized
    4. [2022-10-25T23:56:04,316][INFO ][o.e.n.Node ] [node-1] starting ...
    5. [2022-10-25T23:56:09,819][INFO ][o.e.t.TransportService ] [node-1] publish_address {192.168.0.2:9300}, bound_addresses {[::]:9300}
    6. [2022-10-25T23:56:10,018][INFO ][o.e.b.BootstrapChecks ] [node-1] bound or publishing to a non-loopback address, enforcing bootstrap checks
    7. [2022-10-25T23:56:10,038][INFO ][o.e.c.c.Coordinator ] [no
  • 相关阅读:
    spring复习04,静态代理动态代理,AOP
    进程控制以及相关原语的使用(创建,终止,阻塞,唤醒,切换)
    ps自带磨皮滤镜插件Portraiture3PS版
    netty系列之:可以自动通知执行结果的Future,有见过吗?
    ubuntu 22 某 clash 某 verge 软件界面无法正常显示
    14.力扣c++刷题-->有效括号
    一文搞懂ThreadLocal内存泄漏问题
    OJ练习第177题——打家劫舍 IV(二分查找)
    掌握这3点,企业就能规避收款业务中的合规风险
    React框架新手入门
  • 原文地址:https://blog.csdn.net/skystep/article/details/127543887