Аналог client.indices.exists для типов и их содержимого в node js

Здравствуйте!

Подскажите, пожалуйста, есть ли для node js удобный метод проверки на существование типа с полями, перед тем как добавлять новый mapping?

Нашел из похожего только client.indices.exists для самих индексов
и curl -XHEAD -i 'http://localhost:9200/twitter/tweet'

Или для типов и пропертей уже надо свои велосипеды делать?

Спасибо.

Наличие типов можно проверить через client.indices.existsType. Для полей нужно смотреть в mapping. Однако, такой подход может быть не безопасен в много-поточном приложении (два потока проверяют что новый тип отсутствует и потом начинают его одновременно создавать). К тому же, я бы не рекомендовал создавать больше одного типа в индексе (если это, конечно, не нужно для parent/child). Если типы статические, то лучше их задавать во время создания индекса. Если типы и поля надо добавлять динамически, то я бы возложил эту работы на elasticsearch с использованием index templates и dynamic templates.

1 Like

Спасибо за быстрый ответ и особенно за замечания.

В данном конкретном случае будет 1 поток с parent/child и статическими типами.

Изначально я буду генерировать JSON и хранить в другой БД. А потом кнопкой когда все готово - заливать в Elastic.

Но перед созданием сущностей в моей базе хочу проверять что их еще нету в Elastic.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.