温州建设局网站林南飞,宜都网站seo,商务网站建设评估的指标,惠州做网站哪家公司好【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、匹配…
【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、组合or4.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: {}}
}4.1.2、查询指定索引
根据索引名称查询指定索引如果查询到会返回索引的详细信息
# 查询索引
# GET 索引名称
GET myindex4.1.3、查询所有索引
这里请求路径中的_cat 表示查看的意思indices表示索引所以整体含义就是查看当前 ES 服务器中的所有索引
# 查询索引
GET _cat/indices4.1.4、 删除索引
删除指定已存在的索引
# 删除索引
# DELETE索引名称
DELETE test_index4.2、文档操作
4.2.1、创建文档
这里的文档可以类比为关系型数据库中的表数据添加的数据格式为 JSON 格式 如果在创建数据时指定唯一性标识那么请求范式 POSTPUT 都可以 如果没有指定数据唯一性标识只能使用 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
}4.2.2、查询文档
根据唯一性标识可以查询对应的文档
# 查询文档
GET myindex/_doc/0014.2.3、修改文档
修改文档本质上和新增文档是一样的如果存在就修改如果不存在就新增
# 修改文档
PUT myindex/_doc/001
{age:20
}4.2.4、删除文档
删除一个文档不会立即从磁盘上移除它只是被标记成已删除逻辑删除
# 删除文档
DELETE myindex/_doc/0014.2.5、查询所有文档
# 查询所有文档
GET myindex/_search4.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}}}
}4.3.2、匹配查询字段
默认情况下Elasticsearch 在搜索的结果中会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段我们可以添加_source 的过滤
GET myindex/_search
{_source: [name,age], query: {term: {name: {value: lisi}}}
}4.3.3、组合or
GET myindex/_search
{_source: [name,age], query: {bool: {should: [{match: {name: lisi}},{match: {age: 35}}]}}
}4.3.4、排序
GET myindex/_search
{query: {match_all: {}},sort: [{age: {order: desc}}]
}4.3.5、分页
GET myindex/_search
{query: {match_all: {}},from: 0,size: 2
}4.3.6、分组
GET myindex/_search
{aggs: {ageGroup: {terms: {field: age}}},size: 0 #只显示分组信息 不显示源信息
}4.3.7、平均值
GET myindex/_search
{aggs: {ageAvg: {avg: {field: age}}},size: 0
}4.3.8、求和
GET myindex/_search
{aggs: {ageGroup: {terms: {field: age},aggs: {ageSum: {sum: {field: age}}}}},size: 0
}4.3.9、TopN
GET myindex/_search
{aggs: {Top3: {top_hits: {sort: [{age: {order: desc}}], size: 3}}},size: 0
}五、 索引模板
我们之前对索引进行一些配置信息设置但是都是在单个索引上进行设置。在实际开发中我们可能需要创建不止一个索引但是每个索引或多或少都有一些共性。比如我们在设计关系型数据库时一般都会为每个表结构设计一些常用的字段比如创建时间更新时间备注信息等。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}}}
}5.2、查看模板
GET /_template/mytemplate5.3、验证模板是否存在
HEAD /_template/mytemplate5.4、 创建索引
在创建索引的时候已经定义匹配的索引了 以my开头
PUT mytest5.5、删除模板
DELETE /_template/mytemplate