#databases #elasticsearch #whitepaper
Elasticsearch - это очень мощное решение, чтобы поставить свой собственный Search Engine и залить туда свои данные. Очень круто работает поиск по тексту, приоритизируя резульат, используя TF-IDF алгоритм - если простым языком, то исключая слова создающие "шум", и делая акцент на более "ценных" словах. Очень важно понимать, что "шум"-ные слова считаются исключительно в рамках ваших текстов/данных, т.е. алгоритм адаптируется под ваш контекст.
Поиск данных по ряду фильтров происходит моментально даже на петтабайтах данных.
"clusters can grow to 10s or 1,000s of servers and petabytes of data" (с)
Достигается путем обратного интексирования ваших данных и распределению данных по множесту Nodes.
Для простоты понимания, представьте словарь/hashmap, где в значении у вас ключ, по которому вы ищите, а в значении ваши данные. Все эти пары распределяются на несколько серверов в определенном порядка, а при поисковом запросе, идет отсев ненужных серверов, и возврат значений, каждое из которых посчитанно на каждом сервере отдельно. Таким образом нагрузка распределяется, и запрос получается очень быстрым.
Один из огромных плюсов - наличие API у базы данных, что позволяет легко подключаться к ней и Kibana - сервис по визуализации данных в различных разрезах и графиках.
Use Cases:
В статье пишут, что 50%+ кейсов - это анализ логов. Также для маркетинговой и clickstream аналитики или изучения поведения потребителей.
Я же могу добавить, что эта БД может отлично идти в комбинации с другой БД, если вы используете дизайн паттерн CQRS (Command Query Responsibility Segregation). Об этой дизайн паттерне я еще напишу
Если хотите почитать чуть больше на эту тему, то рекомендую статью от Амазона. Мне очень нравится их слог - очень просто и понятно. Плюс рассказывают про то как это поднять на AWS - если вы это исползьуете, то для вас еще один плюс.
Post #17
191