# Как правильно переиндексировать индекс?

**URL:** <https://discuss.elastic.co/t/topic/36715>\
**Category:** Вопросы на русском языке\
**Created:** [December 9, 2015, 9:13am UTC](https://discuss.elastic.co/t/topic/36715 "2015-12-09T09:13:05Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![stanleer](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@stanleer](https://discuss.elastic.co/u/stanleer)\
**Post date:** [December 9, 2015, 9:13am UTC](https://discuss.elastic.co/t/topic/36715/1 "2015-12-09T09:13:05Z")

</div>

Если стоит задача полной переиндексации большого по объему данных индекса, то как правильно это сделать?  
Не удалять же старый и создавать новый.

---

<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:** [December 9, 2015, 1:43pm UTC](https://discuss.elastic.co/t/topic/36715/2 "2015-12-09T13:43:25Z")

</div>

Существует несколько способов. Начните с изучения [документации](https://www.elastic.co/guide/en/elasticsearch/guide/current/reindex.html) и этого [блога](http://david.pilato.fr/blog/2015/05/20/reindex-elasticsearch-with-logstash/). Если будут конкретные вопросы - спрашивайте.

---

<div class="post-metadata">

**Author:** ![stanleer](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@stanleer](https://discuss.elastic.co/u/stanleer)\
**Post date:** [December 9, 2015, 3:31pm UTC](https://discuss.elastic.co/t/topic/36715/3 "2015-12-09T15:31:27Z")

</div>

так я тему создал с учетом что подскажут лучшее решение а не множество.  
Мне главное чтобы простоя между обновлениями не было.  
Сейчас протестировал индекс на 50к записей, он заполнялся 25минут.

---

<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:** [December 9, 2015, 3:48pm UTC](https://discuss.elastic.co/t/topic/36715/4 "2015-12-09T15:48:08Z")

</div>

Лучшее для чего? Лучшее это понятие очень относительное. Оба способа, которые я привел - лучшие только для разных случаев. Если вы можете описать свою ситуацию подробнее, то можно будет порекомендовать что-то конкретнее.

---

<div class="post-metadata">

**Author:** ![stanleer](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@stanleer](https://discuss.elastic.co/u/stanleer)\
**Post date:** [December 10, 2015, 8:30am UTC](https://discuss.elastic.co/t/topic/36715/5 "2015-12-10T08:30:29Z")

</div>

пока приоритет на скорость

---

<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:** [December 10, 2015, 2:21pm UTC](https://discuss.elastic.co/t/topic/36715/6 "2015-12-10T14:21:54Z")

</div>

Скорость самого процесса индексирования? Каким образом Вы это делаете в данный момент? Где узкое место? CPU? Диск? Или машина не перегружена, но все равно медленно? Сколько машин в кластере и на сколько это все должно быть прозрачно для пользователей?

---

<div class="post-metadata">

**Author:** ![stanleer](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@stanleer](https://discuss.elastic.co/u/stanleer)\
**Post date:** [December 11, 2015, 1:56pm UTC](https://discuss.elastic.co/t/topic/36715/7 "2015-12-11T13:56:38Z")

</div>

Пока 1 машина  
документы добавляю с помощью прослойки elastica по одному документы и потом делаю обновление индекса.

Скорость мне кажется слишком малой по сравнению с тем же sphinx.  
Я же привел пример - 50к записей за 25 минут. Т.к. в эластике еще слабоват, то не знаю нормально это или плохо.

---

<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:** [December 11, 2015, 5:53pm UTC](https://discuss.elastic.co/t/topic/36715/8 "2015-12-11T17:53:25Z")

</div>

Теперь понятно. Надо начать с того, что переключиться с индексирования по одному документу на [bulk](http://elastica.io/getting-started/storing-and-indexing-documents.html#section-bulk) и перестать так часто обновлять индекс. Elasticsearch может обрабатывать несколько параллельных запросов bulk одновременно, если ваше приложение это позволяет. Если после этого будет все равно медленно, то надо будет смотреть где медленно и ускорять, но тут уже многое зависит от вашей системы и [версии](https://www.elastic.co/blog/performance-considerations-elasticsearch-indexing) [elasticsearch](https://www.elastic.co/blog/performance-indexing-2-0).

---

<div class="post-metadata">

**Author:** ![stanleer](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@stanleer](https://discuss.elastic.co/u/stanleer)\
**Post date:** [December 13, 2015, 10:17pm UTC](https://discuss.elastic.co/t/topic/36715/9 "2015-12-13T22:17:28Z")

</div>

Спасибо, попробую пакетную индексацию.  
На этапе разработки приходится переделывать индекс. В это время основная работа с переиндексацией, а потом это будет редко делаться..

---

<div class="post-metadata">

**Author:** ![stanleer](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@stanleer](https://discuss.elastic.co/u/stanleer)\
**Post date:** [December 14, 2015, 9:39am UTC](https://discuss.elastic.co/t/topic/36715/10 "2015-12-14T09:39:05Z")

</div>

Пакетная индексация помогла, теперь все происходит за 19с )

---

<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:** [July 6, 2017, 1:50pm UTC](https://discuss.elastic.co/t/topic/36715/11 "2017-07-06T13:50:15Z")

</div>


