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

**URL:** <https://discuss.elastic.co/t/client-indices-exists-node-js/66967>\
**Category:** Вопросы на русском языке\
**Created:** [November 23, 2016, 11:20am UTC](https://discuss.elastic.co/t/client-indices-exists-node-js/66967 "2016-11-23T11:20:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![whispersofdew](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/whispersofdew/32/11067_2.png) [@whispersofdew](https://discuss.elastic.co/u/whispersofdew)\
**Post date:** [November 23, 2016, 11:20am UTC](https://discuss.elastic.co/t/client-indices-exists-node-js/66967/1 "2016-11-23T11:20:32Z")

</div>

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

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

Нашел из похожего только [client.indices.exists](http://codereview.stackexchange.com/questions/124317/elastic-search-index-mapping-creation) для самих индексов  
и [curl -XHEAD -i 'http://localhost:9200/twitter/tweet'](https://www.elastic.co/guide/en/elasticsearch/reference/2.3/indices-types-exists.html)

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

Спасибо.

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [November 23, 2016, 10:35pm UTC](https://discuss.elastic.co/t/client-indices-exists-node-js/66967/2 "2016-11-23T22:35:35Z")

</div>

Наличие типов можно проверить через [client.indices.existsType](https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-indices-existstype). Для полей нужно смотреть в [mapping](https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-indices-getmapping). Однако, такой подход может быть не безопасен в много-поточном приложении (два потока проверяют что новый тип отсутствует и потом начинают его одновременно создавать). К тому же, я бы не рекомендовал создавать больше одного типа в индексе (если это, конечно, не нужно для parent/child). Если типы статические, то лучше их задавать во время создания индекса. Если типы и поля надо добавлять динамически, то я бы возложил эту работы на elasticsearch с использованием [index templates](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/indices-templates.html) и [dynamic templates](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/dynamic-templates.html).

---

<div class="post-metadata">

**Author:** ![whispersofdew](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/whispersofdew/32/11067_2.png) [@whispersofdew](https://discuss.elastic.co/u/whispersofdew)\
**Post date:** [November 24, 2016, 1:13pm UTC](https://discuss.elastic.co/t/client-indices-exists-node-js/66967/3 "2016-11-24T13:13:43Z")

</div>

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

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

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

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

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [December 22, 2016, 1:13pm UTC](https://discuss.elastic.co/t/client-indices-exists-node-js/66967/4 "2016-12-22T13:13:44Z")

</div>

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