ElasticSearch-Spark框架中的动态索引创建

时间:2015-02-02 14:25:22

标签: java elasticsearch apache-spark

在我的用例中,我的JSON包含一个字段“time”,其中包含Unix时间的值。我希望通过此字段对索引进行分区。也就是说,如果JSON1在“time”中包含1422904680并且JSON2在时间上包含1422991080,那么我想创建按时间(24小时)分区的索引,如

index_1422835200_1422921599 - 其中包含JSON1,因为“time”= 1422904680的值落在其范围内。 index_1422921600_1423007999 - 其中包含JSON2,因为“time”= 1422991080的值落在其范围内。

现在我想动态创建索引。也有可能在当前日期之前接收包含时间值的JSON。

为了达到这个目的,我需要通过在插入时自动计算它来动态创建索引名称。

示例 -

JavaRDD包含JSON。如果一个JSON具有“time”= t1,那么在插入此JSON时,必须检查是否存在index_(t1 - (t1%86400))_(t1 + 86400 - (t1%86400))。如果存在,则在其中插入JSON,否则使用上面的名称(通过计算)创建它,然后插入它。

以编程方式,我希望实现这样的目标

JavaEsSpark.saveJsonToEs(jrd, "index_{time} - {time} % 86400}_{ {time} + 86400 - {time} % 86400 }/type");

其中jrd是我的JavaRDD,包含JSON。

是否可以如上所述实现动态索引名称创建?如果不是,是否有任何工作来实现我的用例。

0 个答案:

没有答案