# Возможности аналитики в Elasticsearch

**URL:** <https://discuss.elastic.co/t/elasticsearch/211714>\
**Category:** Вопросы на русском языке\
**Created:** [December 12, 2019, 7:33pm UTC](https://discuss.elastic.co/t/elasticsearch/211714 "2019-12-12T19:33:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jenya87](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jenya87/32/54012_2.png) [@Jenya87](https://discuss.elastic.co/u/Jenya87)\
**Post date:** [December 12, 2019, 7:33pm UTC](https://discuss.elastic.co/t/elasticsearch/211714/1 "2019-12-12T19:33:22Z")

</div>

Добрый вечер!

Прежде чем поднять вопрос перед шефом о приобретении соответствующего (не очень дешёвого..) железа для ES кластера,  
хотел бы знать предназначен ли ES для решения следующих типичных аналитических задач:  
(Предметная область, которую пока что планируется анализировать - это данные о действиях пользователей в разных интернет - магазинах - то есть клики, покупки,просмотры,лайки,  
чаты и пр.)

- Искать в массиве пользователей со схожими интересами (например найти всех пользователей в радиусе 3 км, которые продают коньки и тем,кто искали коньки выдать сообщение)
- Искать цепочки пользователей со схожими интересами (например пользователь 1 продаёт покрышки, пользователь 5 просматривал покрышки пользователя1, ...пользователь N просматривал свечи пользователя N-1, тогда пользователю N показать товары пользователя 1)  
и прочие надобности, которые могут возникнуть в этой предметной области - часы/дни/ месяца, когда более всего купили шкафов и тд и тд...

Если Elastic это может, то подскажите пожалуйста примерно как это достигается, использованием какого функционала, и раздел документации который надо прочитать, чтобы проникнуться этим вопросом (а то в открытом доступе информации не очень много на эту тему)

Спасибо!

---

<div class="post-metadata">

**Author:** ![IvanTushin](https://avatars.discourse-cdn.com/v4/letter/i/dbc845/32.png) [@IvanTushin](https://discuss.elastic.co/u/IvanTushin)\
**Post date:** [December 13, 2019, 6:58am UTC](https://discuss.elastic.co/t/elasticsearch/211714/2 "2019-12-13T06:58:48Z")

</div>

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

> - Искать в массиве пользователей со схожими интересами (например найти всех пользователей в радиусе 3 км, которые продают коньки и тем,кто искали коньки выдать сообщение)

Гео поиск есть.

> Искать цепочки пользователей со схожими интересами (например пользователь 1 продаёт покрышки, пользователь 5 просматривал покрышки пользователя1, ...пользователь N просматривал свечи пользователя N-1, тогда пользователю N показать товары пользователя 1)

Про поиск по цепочкам пользователей ничего не могу сказать. Не представляю как такое реализовать.

> и прочие надобности, которые могут возникнуть в этой предметной области - часы/дни/ месяца, когда более всего купили шкафов и тд и тд...

Если вам нужен богатый аналитический функционал, рекомендую обратить внимание на ClickHouse от Яндекса, вот это точно заточено под аналитику данных.

---

<div class="post-metadata">

**Author:** ![Jenya87](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jenya87/32/54012_2.png) [@Jenya87](https://discuss.elastic.co/u/Jenya87)\
**Post date:** [December 13, 2019, 8:38am UTC](https://discuss.elastic.co/t/elasticsearch/211714/3 "2019-12-13T08:38:20Z")

</div>

Спасибо большое за ответ!

Когда стала задача по поиску и аналитике в больших массивах данных, первое о чём я подумал - это Elastic, он мне понравился из-за его горизонтального масштабирования, которое может дать производительность, развитой экосистемы, и то , что он позиционируется разработчиком, как инструмент для анализа больших данных.

Но я думаю, даже если не получится реализовать те требования к аналитике, которые от меня хотят, ES можно будет использовать для полнотекстового поиска, в Clickhouse есть fulltext search? За короткое время, что я изучаю ES, у меня сложилось впечатление, что полнотекстовый поиск - одна из сильнейших особенностей Elastic

---

<div class="post-metadata">

**Author:** ![IvanTushin](https://avatars.discourse-cdn.com/v4/letter/i/dbc845/32.png) [@IvanTushin](https://discuss.elastic.co/u/IvanTushin)\
**Post date:** [December 13, 2019, 11:09am UTC](https://discuss.elastic.co/t/elasticsearch/211714/4 "2019-12-13T11:09:14Z")

</div>

Ооо да, мы работам с ним 3 года, и за это время он поразил меня своей скоростью, но для скорости нужно правильно индексировать данные и уж тем более большой объем данных не заведется на HDD дисках, так что хранение выливается в копеечку.

Если в качестве аналитики вам просто нужны графики, такие как гистограммы или круговые это с легкостью, скорость построения их тоже очень быстрая. Однако потребляет много кучи java, так что нюансов много и эластик достаточно капризный на слабом железе. Начните свой путь с Кибаны, там есть [построитель диаграмм](https://www.elastic.co/what-is/kibana-lens). Все что можно построить там, получиться перенести в ваш проект.

На счет ClickHouse и полнотекстового поиска не могу сказать, мы не работали с ним, а просто рассматривали для аналитики. Думаю, что Elasticserach будет более заточен под поиск, чем ClickHouse т.к. он позиционируется именно как поисковик.

---

<div class="post-metadata">

**Author:** ![Jenya87](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jenya87/32/54012_2.png) [@Jenya87](https://discuss.elastic.co/u/Jenya87)\
**Post date:** [December 13, 2019, 12:45pm UTC](https://discuss.elastic.co/t/elasticsearch/211714/5 "2019-12-13T12:45:06Z")

</div>

**[IvanTushin](https://discuss.elastic.co/u/IvanTushin)**, спасибо за ответ. Уточните пожалуйста, что Вы имеете ввиду, говоря,что большой объем данных не заведется на HDD дисках, Вы на чём храните свои данные? Я планирую выбить средства на SAS NL, для небольших компаний самое то.

Про построитель диаграмм в Kibana я в курсе, был приятно удивлён, как там реализовано это дело. Но, как я понял (могу ошибаться естественно) в кибане можно в основном отображать различные агрегации, а мне нужно то, что я описал в первом посте.

Слышал просто, как на одном из забугорных митапов гражданин рассказывал, как загоняет в elastic данные по ДНК геному различных людей и на выходе получает результаты о родстве, предках и тд, меня это весьма впечатлило.

---

<div class="post-metadata">

**Author:** ![IvanTushin](https://avatars.discourse-cdn.com/v4/letter/i/dbc845/32.png) [@IvanTushin](https://discuss.elastic.co/u/IvanTushin)\
**Post date:** [December 13, 2019, 1:34pm UTC](https://discuss.elastic.co/t/elasticsearch/211714/6 "2019-12-13T13:34:21Z")

</div>

Сам я не сис админ, а просто совмещаю обязанности, поэтому в железе не могу назвать себя экспертом. У нас используются два SCSI\DiskTOSHIBA\_\_\_\_\_\_MG06ACA800E в RAID0 на слабой ноде под архивные данные. Так вот, поиск по 2Тб индексу занимает минуты. Время поиска очень сильно разняться от типа поиска, сложности и того как именно проиндексированы данные, а это очень не простой вопрос. Мы каждый год переделываем структуру индекса; все приходит с опытом и пониманием как это работает.

Если вы будете использовать SSD те же индексы на 2Тб выполняются за миллисекунды.

> Слышал просто, как на одном из забугорных митапов гражданин рассказывал, как загоняет в elastic данные по ДНК геному различных людей и на выходе получает результаты о родстве, предках и тд, меня это весьма впечатлило.

Да, есть такая штука как [MLT](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html) да и вообще в эластике можно в условии ИЛИ задать минимальный процент совпадений из условия. Но сразу скажу, на изучение всего этого богатого функционала потребуется время.

---

<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:** [January 10, 2020, 1:34pm UTC](https://discuss.elastic.co/t/elasticsearch/211714/7 "2020-01-10T13:34:25Z")

</div>

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