2016-05-30 4 views
0

Я использую библиотеку elasticsearch-hadoop/spark для создания SparkRDD с запросов ElasticSearch.Как получить индекс сущностей в ElasticSearch-Spark

esRDD метод возвращает необработанный документ (_source, с точки зрения ElasticSearch) и идентификатор документа (_id в ES), но также необходима дополнительная информация о возвращенных документов, таких как индекс ElasticSearch и введите каждый документ исходит от (эта информация всегда доступна в ES REST API).

Как получить индекс и тип информации о документах в RDD, возвращаемом методом esRDD?

EDIT
Я запрашивая несколько индексов, то есть мой вызов esRDD выглядит следующим образом:

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

и фактические индексы "index1", "index2" и т.д. Итак, я хотите узнать, к какому конкретному индексу пришли каждый из объектов в полученном RDD.

+0

Пожалуйста, покажите нам некоторый код, как вы вызываете esRDD, вы должны указать индекс и тип в вызове esRDD, как 'sc.esRDD (« radio/artist »)'. Здесь радио является индексом, а художники - типом. –

+0

@PranavShukla Я использую многоиндексные запросы с подстановочными знаками. Я отредактировал вопрос, чтобы сделать это ясно. В любом случае, спасибо за ответ –

ответ

0

В случае, если кто натыкается на это в будущем:

Решение было установить параметр es.read.metadata в true (см here). Это добавляет поле _metadata к каждому документу в esRDD, в котором содержится информация, такая как индекс документа, тип, идентификатор, версия и т. Д.

Смежные вопросы