索引按月划分以及获取所有索引数据"/>
Elasticsearch索引按月划分以及获取所有索引数据
Elasticsearch索引按月划分以及获取所有索引数据
项目中数据库根据月份水平划分,由于没有用数据库中间件,没办法一下查询所有订单信息,所有用Elasticsearch做订单检索。
Elasticsearch索引和数据库分片同步,也是根据月份来建立索引。
思路:
- 建立索引时用“order_yyyyMM”命名;
- 为这些订单索引建立别名“order”;
- 写数据时把数据写到对应的月份索引,读时根据别名读取,就可以查询到所有订单数据;
对索引分片也可以根据业务灵活的删除老数据。
具体实现需要用到模板,
template可以修改索引的默认配置。我们以下面这个template为例说明一下。
- 建立一个template名称为order_template
- "template": "order*",表示对于所有以order*开头的索引,默认配置使用template中的配置。
- "settings","mappings","aliases",可以修改这些类型的默认配置
curl -XPUT "http://localhost:9200/_template/order_template?pretty" -d '{"template": "order*","settings": {"number_of_shards": 10},"mappings": {"data": {"_source": {"enabled": false},"properties": {"name": {"type": "string","index": "not_analyzed"},"id": {"type": "long"}}}},"aliases": {"order":{}}
}'
设置模板后,每次创建order索引,就会自动关联别名,读数据时就可以通过别名一下把所有数据都获取到。
posted @ 2019-05-16 17:09 自习小夫子 阅读( ...) 评论( ...) 编辑 收藏
更多推荐
Elasticsearch索引按月划分以及获取所有索引数据
发布评论