> 文章列表 > 【ElasticSearch8.X】学习笔记(二)

【ElasticSearch8.X】学习笔记(二)

【ElasticSearch8.X】学习笔记(二)

【ElasticSearch8.X】学习笔记

  • 四、基础操作
    • 4.1、索引操作
      • 4.1.1、创建索引
      • 4.1.2、查询指定索引
      • 4.1.3、查询所有索引
      • 4.1.4、 删除索引
    • 4.2、文档操作
      • 4.2.1、创建文档
      • 4.2.2、查询文档
      • 4.2.3、修改文档
      • 4.2.4、删除文档
      • 4.2.5、查询所有文档
    • 4.3、数据搜索
      • 4.3.1、匹配查询文档
      • 4.3.2、匹配查询字段
      • 4.3.3、组合"or"
      • 4.3.4、排序
      • 4.3.5、分页
      • 4.3.6、分组
      • 4.3.7、平均值
      • 4.3.8、求和
      • 4.3.9、TopN
  • 五、 索引模板
    • 5.1、创建模板
    • 5.2、查看模板
    • 5.3、验证模板是否存在
    • 5.4、 创建索引
    • 5.5、删除模板

四、基础操作

在本人blog中ElasticSearch7.x使用postman进行演示过基础操作
因此在ElasticSearch8.x通过Kibana进行演示

4.1、索引操作

4.1.1、创建索引

ES 软件的索引可以类比为 MySQL 中表的概念,创建一个索引,类似于创建一个表
ES 不允许修改索引

# 创建索引
# PUT+索引名
PUT myindex# 增加索引带自定义配置(JSON格式)
PUT test_index
{"aliases": {"test1": {}}
}

【ElasticSearch8.X】学习笔记(二)

4.1.2、查询指定索引

根据索引名称查询指定索引,如果查询到,会返回索引的详细信息

# 查询索引
# GET 索引名称
GET myindex

【ElasticSearch8.X】学习笔记(二)

4.1.3、查询所有索引

这里请求路径中的_cat 表示查看的意思,indices表示索引,所以整体含义就是查看当前 ES 服务器中的所有索引

# 查询索引
GET _cat/indices

【ElasticSearch8.X】学习笔记(二)

4.1.4、 删除索引

删除指定已存在的索引

# 删除索引
# DELETE+索引名称
DELETE test_index

【ElasticSearch8.X】学习笔记(二)

4.2、文档操作

4.2.1、创建文档

这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式
如果在创建数据时,指定唯一性标识,那么请求范式 POST,PUT 都可以
如果没有指定数据唯一性标识,只能使用 POST 请求

# 创建文档
# 创建文档
POST myindex/_doc/001
{"id" : 1001,"name" : "zhangsan","age" : 30
}
POST myindex/_doc/002
{"id" : 1002,"name" : "lisi","age" : 18
}
POST myindex/_doc/003
{"id" : 1004,"name" : "wangwu","age" : 30
}
POST myindex/_doc/004
{"id" : 1004,"name" : "zhaoliu","age" : 35
}

【ElasticSearch8.X】学习笔记(二)

4.2.2、查询文档

根据唯一性标识可以查询对应的文档

# 查询文档
GET myindex/_doc/001

【ElasticSearch8.X】学习笔记(二)

4.2.3、修改文档

修改文档本质上和新增文档是一样的,如果存在就修改,如果不存在就新增

# 修改文档
PUT myindex/_doc/001
{"age":20
}

【ElasticSearch8.X】学习笔记(二)

4.2.4、删除文档

删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)

# 删除文档
DELETE myindex/_doc/001

【ElasticSearch8.X】学习笔记(二)

4.2.5、查询所有文档

# 查询所有文档
GET myindex/_search

【ElasticSearch8.X】学习笔记(二)

4.3、数据搜索

4.3.1、匹配查询文档

这里的查询表示文档数据中 JSON 对象数据中的 name 属性是lisi

GET myindex/_search
{"query": {"match": {"name": "lisi" #不会查出li si 此时查询关键字是lisi 而li si 的关键词是两个【li】【si】匹配不上}}
}GET myindex/_search
{"query": {"term": {"name": {"value": "li si" #会查出li si 不会查出lisi  此时关键字是li si}}}
}

【ElasticSearch8.X】学习笔记(二)

4.3.2、匹配查询字段

默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段,我们可以添加_source 的过滤

GET myindex/_search
{"_source": ["name","age"], "query": {"term": {"name": {"value": "lisi"}}}
}

【ElasticSearch8.X】学习笔记(二)

4.3.3、组合"or"

GET myindex/_search
{"_source": ["name","age"], "query": {"bool": {"should": [{"match": {"name": "lisi"}},{"match": {"age": 35}}]}}
}

【ElasticSearch8.X】学习笔记(二)

4.3.4、排序

GET myindex/_search
{"query": {"match_all": {}},"sort": [{"age": {"order": "desc"}}]
}

【ElasticSearch8.X】学习笔记(二)

4.3.5、分页

GET myindex/_search
{"query": {"match_all": {}},"from": 0,"size": 2
}

【ElasticSearch8.X】学习笔记(二)

4.3.6、分组

GET myindex/_search
{"aggs": {"ageGroup": {"terms": {"field": "age"}}},"size": 0 #只显示分组信息 不显示源信息
}

【ElasticSearch8.X】学习笔记(二)

4.3.7、平均值

GET myindex/_search
{"aggs": {"ageAvg": {"avg": {"field": "age"}}},"size": 0
}

【ElasticSearch8.X】学习笔记(二)

4.3.8、求和

GET myindex/_search
{"aggs": {"ageGroup": {"terms": {"field": "age"},"aggs": {"ageSum": {"sum": {"field": "age"}}}}},"size": 0
}

【ElasticSearch8.X】学习笔记(二)

4.3.9、TopN

GET myindex/_search
{"aggs": {"Top3": {"top_hits": {"sort": [{"age": {"order": "desc"}}], "size": 3}}},"size": 0
}

【ElasticSearch8.X】学习笔记(二)

五、 索引模板

我们之前对索引进行一些配置信息设置,但是都是在单个索引上进行设置。在实际开发中,我们可能需要创建不止一个索引,但是每个索引或多或少都有一些共性。比如我们在设计关系型数据库时,一般都会为每个表结构设计一些常用的字段,比如:创建时间,更新时间,备注信息等。elasticsearch 在创建索引的时候,就引入了模板的概念,你可以先设置一些通用的模板,在创建索引的时候,elasticsearch 会先根据你创建的模板对索引进行设置。

5.1、创建模板

# 模板名称小写
PUT _template/mytemplate
{"index_patterns" : ["my*"],"settings" : {"index" : {"number_of_shards" : "1"}},"mappings" : {"properties" : {"now": {"type" : "date","format" : "yyyy/MM/dd"}}}
}

【ElasticSearch8.X】学习笔记(二)

5.2、查看模板

GET /_template/mytemplate

【ElasticSearch8.X】学习笔记(二)

5.3、验证模板是否存在

HEAD /_template/mytemplate

【ElasticSearch8.X】学习笔记(二)

5.4、 创建索引

在创建索引的时候已经定义匹配的索引了 以my开头

PUT mytest

5.5、删除模板

DELETE /_template/mytemplate

松山湖人才