在ElasticSearch索引中使用不同的时间字段名称和多个映射

时间:2015-11-18 19:05:11

标签: mongodb elasticsearch kibana

我建立了一个 MongoDB,ElasticSearch 1.7.2& Kibana 4.1.2堆栈,以便可视化来自Mongo集合的报告。我正在使用 Mongo-Connector 来填充Mongo Redolog的弹性搜索索引。

我的设置:

  • MongoDB 数据库' DB'有2个系列' Col1'和' Col2' (分别具有' createdAt'以及' startDate'时间字段)
  • Mongo-Connector 设置名为' DB'的ElasticSearch索引。有2个映射:' Col1'和' Col2'。可以使用以下ElasticSearch API路由访问数据:http://localhost:9200/DB/Col1/_search

我配置了数据库索引并使用' createAt' (来自Col1 Mongo数据收集)作为Kibana Indices面板中的时间字段名称。

我希望可视化条形图在Col2'并且使用特定日期范围过滤在' Col2'>' startDate'时间场。

我的问题:

  1. 是否可以使用startDate作为过滤器?我在_msearch生成的ElasticSearch请求中看到,过滤器是为此索引设置的时间字段(即createdAt)。我找到了一个解决方法,指定createdAt的最后5年,以便不限制此时间字段值的数据范围。
  2. 我可以在导出的JSON格式的ES请求中修改这些字段并重新导入吗?
  3. 先谢谢你的帮助, 不要犹豫,要求提供更多信息。

2 个答案:

答案 0 :(得分:0)

每个Kibana索引模式都绑定到一个日期字段。因此,要使用第二个日期字段,您需要使用第二个索引模式。

我见过人们做“logstash -YYYY.mm.dd”然后还有“logstash - *”。

也可能使用索引别名。

答案 1 :(得分:0)

我发现自己是一个解决方案。

您只需将源和目标命名空间集指定为 mongo connector 命令行参数:

  

mongo-connector -m bdd.myhost.fr:27017 -t reporting.myhost.fr:9200 -d   elastic_doc_manager --auto-commit-interval = 0 --namespace-set   DB.Col1,DB.Col2 --dest-namespace-set DB_Col1.Col1,DB_Col2.Col2