ES在搜索和数据分析中的应用越来越广泛,在之前项目中对ES的使用有些心得,最近有不少朋友和同事都问到了ES,刚好最近也有些时间,所以打算通过8~10篇文章介绍下ES.(其实我也不知道最终会写下多少篇),为了保持阅读的连贯性,可以先看前面几篇文章:
ES搜索引擎入门+最佳实践(一)_flame.liu的博客-CSDN博客
ES搜索引擎入门+最佳实践(二)_flame.liu的博客-CSDN博客
ES搜索引擎入门+最佳实践(三)_flame.liu的博客-CSDN博客
ES搜索引擎入门+最佳实践(四)_flame.liu的博客-CSDN博客
ES搜索引擎入门+最佳实践(五)_flame.liu的博客-CSDN博客
ES搜索引擎入门+最佳实践(六)_flame.liu的博客-CSDN博客
一.概要
聚合,排序,分页这些概念在MySQL中都有,但是ES中的实现与MySQL既有相似又有不同.在学习这些内容的时候可以做类比.本章将会介绍,桶聚合,聚合方式,聚合排序,聚合分页.
本章使用的索引仍然和之前的格式是一样的,代码如下:
PUT /goods
{
"mappings": { //映射
"properties": { //属性
"title":{ //将title定义为多字段
"type": "text",
"fields": {"title_key":{"type":"keyword"}} //title将建立text类型和keyword类型两个索引
},
"price":{"type": "double"}, //价格
"stockNum":{"type": "integer"}, //库存
"createTime":{"type": "date"}, //创建日期
"updateTime":{"type": "date", "format": "yyyy-MM-dd HH:mm:ss"}, //这里创建了两种日期格式
"tag":{"type": "keyword"}, //标签,这里考虑存入数组
"rating":{ //评价:这里设置为对象类型
"properties": { //对象类型这里需要使用到属性
"good_rating":{"type":"integer"},
"bad_rating":{"type":"integer"}
}
},
"location":{"type":"geo_point"}, //地理位置,其实这是一个对象类型
"isDeleted":{"type":"boolean"} //是否删除
}
}
}
}
索引中的数据请自行加入.本章需要使用到的一些关键字和说明如下表.