Задумывались ли вы когда-нибудь, найдя аккуратную публичную базу данных, как хорошо было бы включить её в своё приложение, чтобы оптимизировать какую-нибудь функциональность, пусть даже незначительно? Конечно же да! Этот пост расскажет как, использовать Logstash для превращения внешнего набора данных в желаемый формат, проверить результат в Kibana и убедиться что данные правильно индексированы в Elasticsearch так, что могут быть использованы при больших нагрузках на живых серверах.
Рубрика «elasticsearch» - 13
Имортируем открытые гео данные из OpenGeoDB в Elasticsearch
2014-06-25 в 9:30, admin, рубрики: elasticsearch, geodata, logstash, nosql, OpendataElasticSearch — агрегация данных
2014-06-23 в 8:21, admin, рубрики: elasticsearch, facet, nosql, search api, search engine, Блог компании SmartProgress, Поисковые машины и технологии, метки: elasticsearch, facet, search api, search engine
В статье мы рассмотрим, как правильно реализовывать агрегацию данных, зачем это может понадобиться, и сдобрим это кучей рабочих примеров.
Для всех, кому интересно как сделать свои запросы в ES интереснее и посмотреть на обычной поиск с другой стороны, прошу под кат.
Читать полностью »
ElasticSearch и поиск наоборот. Percolate API
2014-06-19 в 16:34, admin, рубрики: elasticsearch, nosql, percolator, php, search engine, Блог компании SmartProgress, Поисковые машины и технологии, метки: elasticsearch, percolator, PHP, search engine
Вопрос умной категоризации чего-либо встаёт остро при разработке очень многих сайтов. Конечно, всегда можно отдать это на заполнение человеку и результат поначалу будет куда лучше машинного, но, что если категоризировать нужно в реальном времени сотни и тысячи «товаров».
Придется отдать это на откуп машине. Тут вариантов не так много, а написание собственного ИИ для 99.9% задач пустая трата времени.
Заинтересовавшимся как это решить с помощью ElasticSearch прошу под кат.
Читать полностью »
Масштабируем Elasticsearch на примере кластера с индексами в несколько терабайт
2014-06-02 в 11:01, admin, рубрики: big data, elasticsearch, Администрирование баз данных, Серверное администрированиеНизкая скорость поисковых запросов
Работая над поисковым движком по социальной информации (ark.com), мы остановили свой выбор на Elasticsearch, так как по отзывам он был очень легок в настройке и использовании, имел отличные поисковые возможности и, в целом, выглядел как манна небесная. Так оно и было до тех пор, пока наш индекс не вырос до более-менее приличных размером ~ 1 миллиарда документов, размер с учетом реплик уже перевалил за 1,5 ТБ.
Даже банальный Term query
мог занять десятки секунд. Документации по ES не так много, как хотелось бы, а гуглинг данного вопроса выдавал результаты 2х-летней давности по совсем не актуальным версиям нашего поискового движка (мы работаем с 0.90.13 — что тоже не достаточно старая вещь, но мы не можем позволить себе опустить весь кластер, обновить его, и запустить заново на текущий момент — только роллинг рестарты).
Низкая скорость индексации
Вторая проблема — мы индексируем больше документов в секунду (порядка 100к), чем Elasticsearch может обрабатывать. Тайм-ауты, огромная нагрузка на Write IO, очереди из процессов в 400 единиц. Все выглядит очень страшно, когда смотришь на это в Marvel.
Как решать эти проблемы — под катом
Читать полностью »
Умные закладки на основе Elasticsearch
2014-04-13 в 15:22, admin, рубрики: elasticsearch, percolator, Блог компании Percolator.io, Веб-разработка, закладки, поисковые системы, метки: elasticsearch, percolator, закладки, поисковые системы Периодически стал замечать, что не могу найти нужную статью, которую видел раньше.
Вроде бы все просто — по запомнившимся сведениям статью можно легко найти. Но нет. Поиск в Google часто ничего не дает, т.к. я помню только обрывки содержимого, и поисковая выдача содержит много шума.
Актуально это и на работе. Для хранения и обмена полезными ссылками на разные Github проекты, статьи, сервисы раньше мы использовали Skype, но сейчас стали использовать для этих целей Yammer. Оба этих способа имеют свои недостатки. Основной недостаток Skype для обмена ссылками — это сложность поиска по истории. Проблема Yammer — он не индексирует текст статьи, а только сниппет. Ни один из них не имеет возможности автоматической категоризации.
В свободное время я написал приложение, специально заточенное для поиска статей. Его возможности:
- добавление статьи одной кнопкой из браузера
- автоматическая категоризация
- русская и английская морфология
- просмотр текста статьи
- операторы поискового запроса
RubyNoName Podcast S06E03: О книгах с Лешей Гусевым
2014-02-25 в 16:16, admin, рубрики: bookmate, elasticsearch, ruby, ruby on rails, метки: bookmate, elasticsearch, ruby, ruby on rails Ссылка на подкаст: http://rubynoname.ru/posts/2014/S06E03.html
Читать полностью »
ElasticSearch 1.0 — новые возможности аналитики
2014-02-25 в 11:43, admin, рубрики: big data, elasticsearch, google analytics, аналитика, Блог компании Mail.Ru Group, веб-аналитика, поиск, метки: big data, elasticsearch, аналитика, поискМногие слышали о высокоуровневом поисковом сервере ElasticSearch, но не все знают. что многие используют его не совсем по прямому назначению. Речь идет о реалтайм-аналитике различных структурированных и не очень данных.
Эта статья также назрела ввиду того, что многие крупные интернет-проекты рунета в 2014 году получили письма счастья от Google Analytics с предложением заплатить $150 000 за возможность использовать их продукт. Я лично считаю, что ничего плохого в том, чтобы оплатить труд программистов и администраторов нет. Но при этом это довольно серьезные инвестиции, и, может, вложения в собственную инфраструктуру и специалистов, даст большую гибкость в дальнейшем.
Аналитика в ElasticSearch основана на полнотекстовом поиске и фасетах. Фасеты в поиске — это некая агрегация по определенному признаку. Вы часто сталкивались с фасетами-фильтрами в интернет-магазинах: в левой или правой колонке есть уточняющие галочки. Ниже пример тестового фасетного поиска у нас на главной странице http://indexisto.com/.
Буквально неделю назад вышла стабильная версия поискового сервера ElasticSearch 1.0, в которой разработчики настолько серьезно поработали над фасетами, что даже назвали их Aggregation.
Так как тема еще не освещалась на Хабре, я хочу рассказать, что из себя представляют аггрегации в ElasticSearch, какие возможности открываются и есть ли жизнь без Hadoop.
Читать полностью »
Как это сделано: префиксный поиск
2013-12-03 в 9:48, admin, рубрики: elasticsearch, lucene, Блог компании Mail.Ru Group, Веб-разработка, поиск по сайту, Поисковые машины и технологии, поисковые системы, метки: elasticsearch, lucene, поиск по сайту, поисковые системыМы живем во времена, когда кажется, что все просто и все есть. Нужно сделать масштабируемый проект — используем MongoDB, нужна очередь — вот RabbitMQ, нужно поднять функционал поиска — раз плюнуть: ставим Sphinx, Solr, ElasticSearch (нужное подчеркнуть).
Но здесь лишь доля правды: — при определенном везении можно поставить нужный сервер и все зашевелится. Загвоздка с поиском состоит в том, что пользователи уже порядком привыкли к высокой планке, которую задают «большие ребята», а тот поиск, что поднимется у вас «из коробки», будет явно недотягивать. И если очередь или базу данных вы можете добить железом прежде, чем будете оптимизировать, то поиск железом не добьешь.
Существую толстые книжки про настройки полнотекстового поиска, однако их мало кто читает. Сегодня я хотел бы на пальцах поговорить о том, что нужно учесть, когда вы делаете префиксный поиск с выводом результатов по мере набора слова или фразы.
Мы посмотрим, как с помощью нашего проекта http://indexisto.com сделан поиск на сайте http://maximonline.ru и сравним его с тем, что есть на других сайтах.
Для начала несколько примеров. Возьмем запрос «Битва за Лос Анджелес» и представим, что его напишут неправильно «Лос Анжелес биттва». Как видно, пользователь не знает точно, как пишется имя города, и забыл, как звучит название фильма, а также у него дрогнула рука в конце на слове «битва».
Выберем достойные проекты рунета, в которых есть префиксный поиск, и попробуем поискать там наш запрос:
Проект | Правильный запрос | Неправильный запрос |
---|---|---|
afisha.ru | все ОК |
Не найдено |
ivi.ru | все ОК |
Не найдено |
vk.com | все ОК |
Не найдено |
maximonline.ru | все ОК |
все ОК |
Github полностью переработал поиск
2013-01-23 в 20:20, admin, рубрики: elasticsearch, Git, github, поиск кода, разработка, Системы управления версиями, метки: elasticsearch, github, поиск кода
В среду, 23 января, Github запустил новый, значительно переработанный и улучшенный поиск кода, репозиториев и разработчиков. Теперь инфраструктуру обеспечивает кластер серверов ElasticSearch, который индексирует весь добавляемый код на лету, заметно переработан интерфейс, и, самое главное, есть много функциональных улучшений.
Читать полностью »