LINUX.ORG.RU

Elasticsearch 2.0

 


0

4

Выпущена новая версия Elasticsearch — современного распределенного движка полнотекстового поиска и выполнения аналитических запросов реального времени. Elasticsearch построен на основе библиотеки Apache Lucene и распространяется под лицензией Apache.

На пути от версии 1.0 к 2.0 было принято 2799 pull request'ов от 477 разработчиков.

Основные изменения в этой версии:

  • В предыдущих версиях выборка данных ограничивалась комбинацией запросов (query) и фильтров (filter); запросы отличались от фильтров возможностью вычисления функции ранжирования, а фильтры от запросов — более быстрым методом выполнения и возможностью кеширования. В новой версии запросы и фильтры были объединены, а режим исполнения выбирается контекстом в котором находится запрос. Это заметно упростило логику построения сложных запросов, так же позволило провести ряд оптимизаций. Так, например, медленные запросы поиска фраз и геопоиска теперь выполняются в две стадии — сначала выполняется быстрая апроксимация в режиме «фильтра», а после — медленный уточняющий запрос.
  • Многие фильтры в Elasticsearch могут выполняться в двух режимах — с поддержкой кеширования и без. В режиме с поддержкой кеширования первое применение фильтра приводит к полному вычислению значения фильтра на всех документах индекса, в режиме без кеширования фильтр вычисляется для множества документов, ограниченных предыдущими условиями. Ранее выбор режима выполнения отдавался пользователю, в новой версии режим выбирается автоматически на основе накопленной статистики выполнения запросов. Так же была повышена эффективность кеша — вместо простых bitset'ов теперь используется более быстрое и компактное представление.
  • Новая реализация parent/child-отношений более эффективна в комбинациях с другими типами запросов. Также в предыдущих версия колонка _parent, используемая для связи, целиком кешировалась в оперативной памяти. В новой версии используется дисковое хранилище «doc values», что привело к существенному снижению использования оперативной памяти сервером.
  • Добавлен новый тип агрегатных функций — "pipeline aggregations", позволяющий производить вычисления поверх других агрегатов. Этот режим применяется для вычисления производных, поиска максимальных и средних значений среди результатов других агрегатов, сглаживания графиков, прогнозирования временных рядов и аналогичных функций.
  • Улучшения надёжности — операция индексации теперь заканчивается после выполнения fsync журнала транзакций; для всех файлов индекса вычисляются и проверяются контрольные суммы; все операции перемещения файлов индекса теперь гарантировано атомарны. Протокол управления кластером модифицирован для более быстрого распространения изменений в больших кластерах.
  • Большой рефакторинг mapping'а — описания схемы данных и настроек индексации. Исправлено большое количество проблем, которые приводили к неоднозначным или неожиданным результатам. Выпущен специальный плагин для проверки совместимости схемы с новой версий и упрощения миграции.
  • Для компрессии данных теперь может использоваться не только быстрый алгоритм LZ4, но и более медленный (но эффективный) DEFLATE. Смена алгоритма может быть произведена на существующем индексе перед его оптимизацией, например для исторических данных, в которых больше не ожидается изменений.

Новая версия Elasticsearch может работать с индексами, созданными предыдущими версиями (начиная с 0.90). Опубликован список изменений, которые нужно учесть при миграции с предыдущих версий.

Вместе с выходом новой версии было объявлено, что проприетарный плагин для мониторинга кластера, Marvel, теперь можно бесплатно использовать для production-установок. Коммерческая лицензия требуется только для функций мониторинга группы кластеров Elasticsearch.

>>> Подробности

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 18)

А можно ли использовать parent/child в kibana, или все приходится также пихать в одну структуру/тип ?

Jopich
()
Ответ на: комментарий от Jopich

можно ли использовать parent/child в kibana

имхо нет, я там этого не видел

maxcom ★★★★★
() автор топика

Годнота! И marvel сделали почти бесплатным.

Всех идиотиков жалеющих что эластик на жабе поздравляю с тем что они идиотики. Проект уровня эластика на плюсах или что-там у вас просто был бы невозможен.

anonymous
()
Ответ на: комментарий от anonymous

А ну собственно у нас несколько террабайт аналитики в эластике и десятки гигов поискового индекса. Довольны как слоны.

anonymous
()
Ответ на: комментарий от anonymous

Проект уровня эластика на плюсах или что-там у вас просто был бы невозможен.

Тут не мешало бы увидеть формальное доказательство этого заявления (от анонимной кукарекалки, лiл).

Deleted
()

pipeline aggregations - круто, продолжается движение в сторону аналитики, надо будет попробовать поиграться

shty ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

Не нужно. Есть монга. Сам переводил проектна ноде на нее. С этого убожества.

В монге появился нормальный полнотекстовый поиск?

home_user ★★★
()
Ответ на: комментарий от EnterpriseMobility

С этого убожества.

Кхм. Поделитесь подробностями что не так с эластиком было? И на какой версии?

anonymous
()
Ответ на: комментарий от Deleted

Может тебе еще пдф на архив выложить со списком уважаемых рецензентов? Сначала хотя бы на плюсах люцен осильте, лол.

anonymous
()

Также в предыдущих версия колонка _parent, используемая для связи, целиком кешировалась в оперативной памяти. В новой версии используется дисковое хранилище «doc values»

Снизили расход памяти, зато задрали I/O? Ну не знаю, мне кажется, сомнительный профит

boombick ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

вы уже пофиксили глобаллок при апдейтах?

Debasher ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

Ноде только успевай винты подность.

ggrn ★★★★★
()
Ответ на: комментарий от boombick

Снизили расход памяти, зато задрали I/O? Ну не знаю, мне кажется, сомнительный профит

doc values это mmap, при наличии свободной памяти большого I/O из-за него нет.

maxcom ★★★★★
() автор топика
Ответ на: комментарий от Deleted

EnterpriseMobility ★ (29.10.2015 0:27:38) Не может реализовать дерево на C#

Не знаю, он может и серьезно.

Quickern ★★
()
Ответ на: комментарий от anonymous

Проект уровня эластика на плюсах или что-там у вас просто был бы невозможен.

У тебя жаба головного мозга. Такие как ты считают что ORM работает всегда быстрей чем SQL написанный руками. Дальше их выпинывают ногой под зад и на этом их карьера заканчивается.

anonymous
()
Ответ на: комментарий от anonymous

У тебя жаба головного мозга.

У тебя детектор неоткалиброван. Я бы с радостью пользовался аналогом эластика на плюсах, так как очевидно он будет быстрее. Но нетути.

anonymous
()
Ответ на: комментарий от anonymous

Но нетути.

«Потому что проект такого уровня возможен только на жабе» У тебя ЖАБА головного мозга!1

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

Это они в твоем воображении разлагаются. Всегда были есть и будут те кто умеет программировать и те годами думают что умеют пораждая тонны дерьма как на жабе так и на c++. При этом из c++ мусора есть шансы взять хоть какие-то частицы разума, а из жабы шансов нет изначально.

anonymous
()
Ответ на: комментарий от anonymous

То есть человек без ЖГМ должен страдать на православном сфинксе?

Офигеть выводы. У тебя уже терминальная стадия. Спор прекращаю.

PS: вот ребята что с вами будет если вы потрагаете жабу даже палкой на растоянии!

anonymous
()
Ответ на: комментарий от anonymous

При этом из c++ мусора есть шансы взять хоть какие-то частицы разума, а из жабы шансов нет изначально.

При этом на жабе написаны самые масштабируемые решения, находящиеся в реальном продакшоне,ок. Ждите серебрянной пули, а мы продолжим дальше работать.

anonymous
()
Ответ на: комментарий от anonymous

Офигеть выводы.

Ок, дружок. У тебя задача — нужен фултекстовый поиск. Твои действия? Как не заболеть?

anonymous
()
Ответ на: комментарий от Jopich

Он уже не православный. Там скоро его без mysql не поставишь

Можно ж перкону накатить)

anonymous
()
Ответ на: комментарий от anonymous

При этом на жабе написаны самые масштабируемые решения, находящиеся в реальном продакшоне

картинка_с_котом_и_лампой.жпг

Ну, хотя, «в продакшоне» может так и есть

boombick ★★★★★
()
Ответ на: комментарий от anonymous

нужен фултекстовый поиск

Ну вообще полнотекстовый поиск уже даже в innodb есть, профиты эластика немного дальше fulltext search расположены

boombick ★★★★★
()
Ответ на: комментарий от anonymous

Конечно быстрей. Пока рукоблуды пишут свой SQL, проект на ORM успевают написать, протестировать и оптимизировать.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

Сначала хотя бы на плюсах люцен осильте

clucene

0.9.21 release, which has been proven to be stable over time, but is only compatible with Java Lucene 1.9.1
Свежо преданье

ты пока рыбку кушаешь на кукане не вертись - юстировку нарушишь

shty ★★★★★
()

Посоветуйте по случаю удобный *ctl для эластика.

like-all ★★
()

Отлично! Дай бог наши чурки решат обновиться с 0.90...

ii8_ ★★★★
()

Хм, интересно.

У мну некая аналитика крутится в одной конторке. Постгря и двигло на жабе.

Deleted
()
Ответ на: комментарий от shty

ты пока рыбку кушаешь на кукане не вертись - юстировку нарушишь

Бгг. То что проект сдох, тебя не волнует, главное появилось пара хидеров и классов. Ок.

A1
()
Ответ на: комментарий от boombick

Ну вообще полнотекстовый поиск уже даже в innodb есть

Ты его тыкал? Он годен только для совсем бабуинов, которые сфинкс не смогли настроить.

профиты эластика немного дальше fulltext search расположены

Речь о том, что на плюсах нет решения даже для фултекста, про аналитику и общее удобство я просто молчу.

A1
()
Ответ на: комментарий от anonymous

Чем оно лучше сфинкса?

Да как бы всем.

Что, сабж уже научился не жрать память гигабайтами и быстро индексировать миллионы документов? :)

Кроме несовместимости с PHP быдлом.

А что, тонны библиотек Elastic под PHP уже удалили с Гитхаба и Пакаджиста?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

научился не жрать память гигабайтами

Надо маппинги с умом делать, а не индексировать всё вподряд на дефолтовых настройках.

быстро индексировать миллионы документов?

Bulk API, index.refresh_interval, etc.

тонны библиотек Elastic под PHP

Оф.клиент на жабе видит кластер, асинхронен насквозь и чешет по UDP в отличие от http/curl-зашквара.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 3)
Ответ на: комментарий от KRoN73

Что, сабж уже научился не жрать память гигабайтами и быстро индексировать миллионы документов? :)

Да жрет, но и ищет быстрее на порядок. Скорость индексации на одну ноду на треть медленнее, но индексировать можно сразу на кластер, в отличие от «отечественного продукта», что сразу оставляет сфинкс в сторонке причмокивать.

Мой опыт основывается на реальном переводе сервиса со сфинкса на эластик. Ни разу не пожалели. Плюс абсолютно бесплатно получили инкрементальную индексацию, поэтому проблема с миллионами документов это исключительно ваша боль)

А что, тонны библиотек Elastic под PHP уже удалили с Гитхаба и Пакаджиста?

Отличный пост детектор, как хорошо подгорело. Да Крончик, если ты возишься со сфинксом это многое говорит об уровне твоих проектов)

A1
()
Ответ на: комментарий от djnoob

Чем оно лучше сфинкса?

Чем кластерное решение для хранения, обработки, анализа, аггрегации и поиска данных (в т.ч. географических) без единой точки отказа лучше поискового сфинктера? Очевидно же: ничем.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.