Рубрика «elasticsearch» - 14

Мы живем во времена, когда кажется, что все просто и все есть. Нужно сделать масштабируемый проект — используем MongoDB, нужна очередь — вот RabbitMQ, нужно поднять функционал поиска — раз плюнуть: ставим Sphinx, Solr, ElasticSearch (нужное подчеркнуть).

Но здесь лишь доля правды: — при определенном везении можно поставить нужный сервер и все зашевелится. Загвоздка с поиском состоит в том, что пользователи уже порядком привыкли к высокой планке, которую задают «большие ребята», а тот поиск, что поднимется у вас «из коробки», будет явно недотягивать. И если очередь или базу данных вы можете добить железом прежде, чем будете оптимизировать, то поиск железом не добьешь.

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

Мы посмотрим, как с помощью нашего проекта http://indexisto.com сделан поиск на сайте http://maximonline.ru и сравним его с тем, что есть на других сайтах.

Для начала несколько примеров. Возьмем запрос «Битва за Лос Анджелес» и представим, что его напишут неправильно «Лос Анжелес биттва». Как видно, пользователь не знает точно, как пишется имя города, и забыл, как звучит название фильма, а также у него дрогнула рука в конце на слове «битва».

Выберем достойные проекты рунета, в которых есть префиксный поиск, и попробуем поискать там наш запрос:

Проект Правильный запрос Неправильный запрос
afisha.ru Как это сделано: префиксный поиск
все ОК
Как это сделано: префиксный поиск
Не найдено
ivi.ru Как это сделано: префиксный поиск
все ОК
Как это сделано: префиксный поиск
Не найдено
vk.com Как это сделано: префиксный поиск
все ОК
Как это сделано: префиксный поиск
Не найдено
maximonline.ru Как это сделано: префиксный поиск
все ОК
Как это сделано: префиксный поиск
все ОК

Читать полностью »

Github полностью переработал поиск

В среду, 23 января, Github запустил новый, значительно переработанный и улучшенный поиск кода, репозиториев и разработчиков. Теперь инфраструктуру обеспечивает кластер серверов ElasticSearch, который индексирует весь добавляемый код на лету, заметно переработан интерфейс, и, самое главное, есть много функциональных улучшений.
Читать полностью »

Приветствую.

Нет так давно передо мной встала задача пробежаться по старым логам apache. Надо было сделать выборку по нескольким IP адресам, отыскать некоторые аномалии и попытки SQL-injection'ов. Логов было не так много, порядка миллиона строк и можно было спокойно всё сделать стандартным набором grap-awk-uniq-wc итд.

Поскольку я уже какое-то (больше года) время пользуюсь связкой Logstash-Elasticsearch-Kibana для анализа-просмотра всевозможных логов, то решил ей воспользоваться и в данной ситуации.

Краткое описание основных компонентов системы.

Logstash — бесплатная open-source программа на java для сбора и нормализации логов. Может принимать логи либо с локальных файлов, либо через tcp/udp порты. На момент написания статьи разных входных (input) фильтров насчитывается 26. Есть даже входной модуль, для сбора сообщений из twitter'а или irc.

Elasticsearch — бесплатный open-source поисковый сервер основанный на Apache Lucene. Быстрый, легко настраиваемый и очень масштабируемый.

Kibana — веб-интерфейс написанный на ruby, для отображения данных из Elasticsearch. Простая настройка, но множество функций — поиск, графики, stream.

Читать полностью »

Вместо вступления

Подкаст вышел с опозданием, поскольку мы ждали, когда мне вернут микрофон. На момент записи его так и не отдали, поэтому меня слышно не очень хорошо, выводы сделали, своих ошибок повторять не будем.
Таинственный образом с хабра пропал «подкаст», поэтому слушайте нас на rpod-е.

Новости

Вышли Rails 3.0.12, 3.1.4, 3.2.2
Товарищ Константин, О времени и о себе. Кстати, упоминаемая в интервью книжица «Sinatra: Up and Running» — тоже очень ничего. Можно рекомендовать как академическое пособие для желающих разобраться, как правильно готовить на Руби web-(и прочее)-middleware и все такое.
Деплой как в Heroku
4 марта вышло обновление на Github, связанное с массовыми уязвимостями на этом сайте
6 марта вышел Vagrant версии 1.0
7 марта вышел Bundler 1.1
Lightrail — легкий rails-стэк для json приложений
Ruby 2.0 Enumerable::Lazy
Except.io — сервис, аналогичный airbrake.io

Обсуждение

Системы полнотекстового поиска

Sphinx — система полнотекстового поиска от Андрея Аксенова
Full Text Search в Postgresql — система полнотекстового поиска, встроенная в Postgresql
Elasticsearch
Solr — сервер полнотекстового поиска от Apache Foundation
Lucene — движок полнотекствого поиска от Apache Foundation

Срывая покровы с Ивана Самсонова

Профиль Ивана на Моем Круге
Профиль Ивана на LinkedIn
Твиттер Ивана
Wheely — компания, где сейчас работает Иван
РГГУ — а здесь Иван сейчас учится

Контакты RubyNoName подкаста

Наш твиттер
Email для предложенией
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js