如何在 ElasticSearch-Spark 中获取实体的索引

How to get entities' index in ElasticSearch-Spark

我正在使用 elasticsearch-hadoop/spark 库从 ElasticSearch 查询创建 Spark RDDs。

esRDD 方法 returns 原始文档(_source,在 ElasticSearch 术语中)和文档的 id(_id 在 ES 中),但我还需要额外的有关返回文档的信息,例如每个文档的 ElasticSearch 索引和类型(此信息始终可从 ES REST API)获得。

如何获取esRDD方法返回的RDD中文档的索引和类型信息?

编辑
我正在查询多个索引,即我对 esRDD 的调用如下所示:

sparkContext.esRDD("index*/entities", query)

实际索引为"index1"、"index2"等。 所以,我想知道结果 RDD 中的每个实体来自哪个特定索引。

万一以后有人偶然发现这个:

解决方案是将 es.read.metadata 设置设为 true(参见 here)。这会为 esRDD 中的每个文档添加一个 _metadata 字段,其中包含文档的索引、类型、id、版本等信息