ElasticSearch 学习

本文最后更新于 2022年4月16日 下午

ElasticSearch

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

学习课程:https://www.bilibili.com/video/BV1Sy4y1G7LL

相关书籍:

安装和配置ElasticSearch

下载:

https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择对应的版本

本笔记基于ElasticSearch 7.17.2

配置:

  • ElasticSearch设置elasticsearch.yml:

    1
    2
    3
    4
    5
    cluster.name: my-application
    node.name: node-1
    network.host: 0.0.0.0
    http.port: 9200
    cluster.initial_master_nodes: ["node-1"]
  • JVM虚拟机设置jvm.options:

    1
    2
    -Xms1g
    -Xmx1g

    不设置JVM的话,ES会占用太多的内存,当然生产环境需要按照需求配置

ElasticSearch入门

一些概念

index 索引

是具有某种相似特性的文档集合,可以理解为一个数据库。索引由一个名称(必须全部是小写)标识,当对其中的文档执行索引、搜索、更新和删除操作时,该名称指向这个特定的索引。

document 文档

是可以被索引的基本信息单元,一个文档相当于关系型数据库的一行,用JSON表示

mapping 映射

映射的功能是完成字段的定义,包括数据类型、存储属性、分析器等。

ES基于RESTful风格,即一个url对应一个资源,使用不同的Method可以对资源进行增删改查的操作。

倒排索引

ES的一些基本操作(API)

查看集群健康状态:

1
GET /_cat/health?v

查看节点状态:

1
GET /_cat/nodes?v

index操作

创建一个为user的index:

1
PUT /user

删除index:

1
DELETE /user

查询user索引信息:

1
GET /user

查询节点索引信息:

1
GET /_cat/indices?v

Mapping操作

添加映射:

1
2
3
4
5
6
7
8
9
10
11
PUT /user/_mapping
{
"properties":{
"name":{
"type":"keyword"
},
"age":{
"type":"integer"
}
}
}

添加索引时添加mapping:

1
2
3
4
5
6
7
8
9
10
11
12
13
PUT /user
{
"mappings":{
"properties":{
"name":{
"type":"text"
},
"age":{
"type":"integer"
}
}
}
}

查询索引:

1
GET /user/_mapping

添加字段(更改):

1
2
3
4
5
6
7
8
PUT /user/_mapping
{
"properties":{
"address":{
"type":"text"
}
}
}

Document操作

新建or修改文档:

表示在序列为user新建or修改ID为1的文档

1
2
3
4
PUT /user/_doc/1
{
"name":"Nanami"
}

不指定ID系统会随机创建

查询文档:

1
GET /user/_doc/1

查询所有文档:

1
GET /user/_search

查询操作

  1. match
  1. term

ElasticSearch 学习
https://nanami.run/2022/04/12/ElasticSearch/
作者
Nanami
发布于
2022年4月12日
许可协议