Наличие типов можно проверить через client.indices.existsType. Для полей нужно смотреть в mapping. Однако, такой подход может быть не безопасен в много-поточном приложении (два потока проверяют что новый тип отсутствует и потом начинают его одновременно создавать). К тому же, я бы не рекомендовал создавать больше одного типа в индексе (если это, конечно, не нужно для parent/child). Если типы статические, то лучше их задавать во время создания индекса. Если типы и поля надо добавлять динамически, то я бы возложил эту работы на elasticsearch с использованием index templates и dynamic templates.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.