ElasticSearch常见操作语法
- Elasticsearch语法大全
-
- 一、 ElasticSearch 创建index、type、field语法
- 二、Elasticsearch搜索语句
-
-
-
- 1、最简单的搜索,使用match_all来表示,例如搜索全部
- 2、分页搜索,from表示偏移量,从0开始,size表示每页显示的数量
- 3、搜索排序,使用sort表示,例如按createTime字段降序排列
- 4、搜索并返回指定字段内容,使用_source表示,例如只返回id和createTime两个字段内容
- 5、条件搜索,使用match表示匹配条件,例如搜索出id为20的文档:
- 6、文本类型字段的条件搜索,例如搜索address字段中包含mill的文档,对比上一条搜索可以发现,对于数值类型match操作使用的是精确匹配,对于文本类型使用的是模糊匹配;
- 7、短语匹配搜索,使用match_phrase表示,例如搜索address字段中同时包含mill和lane的文档:
- 8、组合搜索,使用bool来进行组合,must表示同时满足,例如搜索address字段中同时包含mill和lane的文档
- 9、组合搜索,should表示满足其中任意一个,搜索address字段中包含mill或者lane的文档
- 10、组合搜索,must_not表示同时不满足,例如搜索address字段中不包含mill且不包含lane的文档
- 11、组合搜索,组合must和must_not,例如搜索age字段等于40且state字段不包含ID的文档
- 12、搜索过滤,使用filter来表示,例如过滤出balance字段在20000~30000的文档
- 13、对搜索结果进行聚合,使用aggs来表示,类似于MySql中的group by,例如对vin字段进行聚合,统计出相同state的文档数量
- 14、嵌套聚合,例如对state字段进行聚合,统计出相同vin的文档数量,再统计出balance的平均值
- 15、对聚合搜索的结果进行排序,例如按balance的平均值降序排列
- 16、按字段值的范围进行分段聚合,例如分段范围为age字段的[20,30] [30,40] [40,50],之后按gender统计文档个数和balance的平均值
-
-
Elasticsearch语法大全
安装教程跳过,此文档是基于kibana操作Elasticsearch
一、 ElasticSearch 创建index、type、field语法
1、Elasticsearch和关系型数据库数据模型对应关系表
2、创建索引并查看
PUT /deocde
GET /_cat/indices?v
3、删除索引并查看
DELETE /decode
GET /_cat/indices?v
4、文档操作
4.1、查看文档类型
GET /decode/resolve/_mapping
4.2、在索引中添加文档
PUT /decode/resolve/1
{
"vin": "B1293049555"
}
4.3、在索引中查看文档
GET /decode/resolve/1
4.4、在索引中修改文档
POST /decode/resolve/1/_update
{
"doc": {
"vin": "A1299405555" }
}
4.5、在索引中删除文档
DELETE /decode/reslove/1
4.6、在索引中批量操作文档
POST /decode/resolve/_bulk
{
"index":{
"_id":"1"}}
{
"vin": "D1445266366" }
{
"index":{
"_id":"2"}}
{
"vin": "C4526365588" }
5、创建一个数据模型样例(包含index、type、field):
PUT /decode
{
"settings":{
"index":{
"number_of_shards":3,
"number_of_replicas":0
}
},
"mappings":{
"resolve":{
"properties":{
"id":{
"type":"keyword"
},
"vin":{
"type":"keyword"
},
"gender":{
"type":"keyword"
},
"carBrandId":{
"type":"text"
},
"balance":{
"type":"int"
},
"age":{
"type"