项目中数据库根据月份水平划分,由于没有用数据库中间件,没办法一下查询所有订单信息,所有用Elasticsearch做订单检索。

Elasticsearch索引和数据库分片同步,也是根据月份来建立索引。

思路:

  1. 建立索引时用“order_yyyyMM”命名;
  2. 为这些订单索引建立别名“order”;
  3. 写数据时把数据写到对应的月份索引,读时根据别名读取,就可以查询到所有订单数据;

对索引分片也可以根据业务灵活的删除老数据。

具体实现需要用到模板,

template可以修改索引的默认配置。我们以下面这个template为例说明一下。

  1. 建立一个template名称为order_template
  2. "template": "order*",表示对于所有以order*开头的索引,默认配置使用template中的配置。
  3. "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索引,就会自动关联别名,读数据时就可以通过别名一下把所有数据都获取到。

Elasticsearch索引按月划分以及获取所有索引数据的更多相关文章

  1. elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

    一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...

  2. elasticsearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解

    一.快速入门1. 查看集群的健康状况http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状 ...

  3. Elasticsearch 中为什么选择倒排索引而不选择 B 树索引

    目录 前言 为什么全文索引不使用 B+ 树进行存储 全文检索 正排索引 倒排索引 倒排索引如何存储数据 FOR 压缩 RBM 压缩 倒排索引如何存储 字典树(Tria Tree) FST FSM 构建 ...

  4. [转载]jquery获取元素索引值index()方法:

    jquery的index()方法 搜索匹配的元素,并返回相应元素的索引值,从0开始计数. 如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的 ...

  5. jquery获取元素索引值index()方法

    jquery的index()方法 搜索匹配的元素,并返回相应元素的索引值,从0开始计数. 如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的 ...

  6. jquery 获取奇数索引的元素,获取复选框,判断是否选中

    $(".btn-xs:odd").click(function(){ var $buy_num=$(this).prev("#buy_num").val(); ...

  7. jquery获取元素索引值index()

    jquery获取元素索引值index()方法实例. jquery获取元素索引值index()方法: jquery的index()方法 搜索匹配的元素,并返回相应元素的索引值,从0开始计数. 如果不给 ...

  8. jquery获取元素索引值index()的例子

    如果参数是一组DOM元素或者jQuery对象,那么返回值就是传递的元素相对于原先集合的位置. 如果参数是一个选择器,那么返回值就是原先元素相对于选择器匹配元素中的位置.如果找不到匹配的元素,则返回-1 ...

  9. 根据GridView模板里的列名获取列索引

    以前Insus.NET在写过一篇<在Gridview控件中根据Field Name来取得对应列索引> http://www.cnblogs.com/insus/archive/2010/0 ...

随机推荐

  1. JS系列:js节点

    节点(node) 在html文档中出现的所有东西都是节点 元素节点(HTML标签) 文本节点(文字内容) 注释节点(注释内容) 文档节点(document) … 每一种类型的节点都会有一些属性区分自己 ...

  2. JavaEE基础(05):过滤器、监听器、拦截器,应用详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.Listener监听器 1.概念简介 JavaWeb三大组件:Servlet,Listener,Filter.监听器就是指在应用程序中监听 ...

  3. firefox浏览器写xpath

    最近在学xpath发现Firefox浏览器不支持xpath定位页面元素 百度为例: F12 页面前端代码  输入最简单的xpath发现并不能定位元素 解决方案:添加 Try Xpath 这个插件,因为 ...

  4. Vue中无法检测到数组的变动

    本周在写项目中遇到修改数组中的值时,视图无变化问题.在查阅Vue官方文档后了解到,由于由JavaScript 的限制,Vue 不能检测以下数组的变动: 当利用索引直接设置一个数组项时,例如:vm.it ...

  5. 使用CleanWebpackPlugin插件报错原因:CleanWebpackPlugin is not a constructor

    // webpack版本:4.32.2 // 抛错原写法 const CleanWebpackPlugin = require("clean-webpack-plugin"); . ...

  6. pythpn爬虫--来一波美女,备好纸巾了!

    关于图片名称的中央乱码问题 import requests from lxml import etree url = 'http://pic.netbian.com/4kmeinv/index_%d. ...

  7. item()方法遍历字典

    Python字典的遍历方法有好几种,其中一种是for...in,这个我就不说明,在Python了几乎随处都可见for...in.下面说的这种遍历方式是item()方法. item() item()方法 ...

  8. 面试 3-5年Java开发后的感受

    在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...

  9. C#线程学习笔记五:线程同步--事件构造

    本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/23/Event_Constructor.html,记录一下学习过程以备后续查用. 前面讲的线 ...

  10. mysql中msvcr120.dll文件丢失问题

    安装VC++2013 若是以上方法不能解决,需要下载安装VC++2013,这是微软官网的链接 https://www.microsoft.com/zh-cn/download/confirmation ...