Как стать автором
Обновить

Полнотекстовый поиск в веб-проектах: Sphinx, Apache Lucene, Xapian

Время на прочтение 15 мин
Количество просмотров 54K
Разработка веб-сайтов *
Полная авторская верcия из моего блога. Оригинал материала написан специально для Developers.org.ua

Наверное любой современный веб-проект сложно себе представить без… без контента! Да, именно контент в разных его проявлениях сегодня «правит бал» в различных веб-проектах. Не так важно — создаваемый пользователями или получаемый из других источников автоматически — информация является основной любого (ну, или почти любого) проекта. А раз так — то вопрос поиска необходимой информации стоит очень остро. И острее с каждым днем, ввиду стремительного расширения количества этого самого контента, в основном за счёт создаваемого пользователями (это и форумы, и блоги и модные нынче сообщества, вроде Habrahabr.ru). Таким образом, любой разработчик, реализующий сегодня какой-либо проект, сталкивается с потребностью реализовать поиск в своём веб-приложении. При этом требования к такому поиску уже намного сложнее и шире, чем даже год-два назад. Конечно, для каких-то проектов вполне подойдёт и простое решение, к примеру, вполне можно использовать Custom Google Search. Но чем более сложное приложение, и чем сложнее структура контента, если требуются особые виды поиска и обработки результата, или же просто количество или формат данных в вашем проекте особый, вам потребуется собственная поисковая система. Именно своя система, собственный поисковый сервер или сервис, а не сторонний, пусть даже гибкий и настраиваемый. Но что же выбрать, и вообще — какие сейчас на рынке есть поисковые проекты, которые готовы для использования в реальных проектах, не исследовательских или научных, а реальных бизнес-приложениях? Далее мы кратко рассмотрим различные варианты поисковых решений, пригодных для встраивания в ваше веб-приложение или развёртывания на собственном сервере.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 62

Advanced Ultrasphinx: теги и фильтры

Время на прочтение 2 мин
Количество просмотров 492
Чулан
На хабре уже писали о интеграции Rails с великолепной поисковой системой sphinx
Rails+Sphinx=? Часть I
Rails и Sphinx.
В этой статье постараюсь рассказать о дополнительных возможностях плагина Ultrasphinx


Дальше
Всего голосов 2: ↑1 и ↓1 0
Комментарии 0

Добавляем Sphinx к Денверу

Время на прочтение 2 мин
Количество просмотров 4.2K
Разработка веб-сайтов *
Всем привет!

Сделал небольшой аддон к Денверу. Решил поделиться. Теперь при старте он запускает Sphinx, а при стопе выключает его. Версия: Денвер-3 2008-01-13.

Можно было добавить в denwer/scripts/main/start/ файл.bat, где просто написать пару команд для его запуска. Правда, чуть сложнее с остановкой. Но хочется, чтобы было все красиво. Со словами «Запускаем… Ждем 2 секунды… Готово...» Красота!

Итак.
Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 10

вышел Sphinx 1.10-beta

Время на прочтение 1 мин
Количество просмотров 1.3K
Блог компании «Sphinx Technologies Inc» Sphinx *
Третьего дня выложил Sphinx 1.10-beta, с блекджеком и шлюхами RT индексами, строковыми атрибутами, оптимизированным форматом индекса, и традиционным десятком-другим фич поменьше. Вчера выложил к нему RPM вот еще.
Читать дальше →
Всего голосов 64: ↑60 и ↓4 +56
Комментарии 50

Создание ознакомительного поискового движка на Sphinx + php

Время на прочтение 5 мин
Количество просмотров 101K
Sphinx *
Туториал

Предыстория


Раньше для поиска по сайту мы использовали обычный fulltext поиск. Но в определенный момент он перестал нас устраивать и мы решили опробовать альтернативную технологию поиска: Sphinx. К сожалению, у сфинкса совсем нет русской документации, поэтому эта статья — аналог статьи Build a custom search engine with PHP, только на русском языке и для моего локального окружения (windows 7, mysql/php)
Статья состоит из 4 частей:
  1. Краткий рассказ про подготовку базы для поиска.
  2. Рассказ про первоначальную установку и настройку сфинкса
  3. Индексирование базы и тестовый поиск из командной строки
  4. Тестовый поиск из php

Читать дальше →
Всего голосов 82: ↑73 и ↓9 +64
Комментарии 59

Open Source-расширения для yii от команд 2ГИС

Время на прочтение 3 мин
Количество просмотров 19K
Блог компании 2ГИС
В прошлый раз мы рассказали о слоистой архитектуре во фреймворке yii, а сейчас хотим поделиться кодом.

В своей работе мы активно используем open source-решения и поэтому решили поделиться собственными разработками, которые могут быть полезны сообществу. Сегодня это расширения для, наверное, лучшего в мире PHP-фреймворка yii:
  • DGSphinxSearch
  • AMQP(RabbitMQ)
  • MQLogRouter
  • DGPinbaLogRoute
  • DGApiClient
Рассмотрим эти расширения по порядку.

Читать дальше →
Всего голосов 85: ↑80 и ↓5 +75
Комментарии 9

Сегодня IndexTank выключает все свои сервера

Время на прочтение 1 мин
Количество просмотров 1.3K
Поисковые технологии *Sphinx *
В октябре 2011 года профессиональная социальная сеть LinkedIn купила компанию IndexTank, которая занимается производством поисковых технологий. Подробнее про поглощение можно почитать тут.


Согласно договору сегодня IndexTank завершает свое существование как сервис.

Как сообщалось в @IndexTank на прошлой неделе:

IndexTank will be shutting down it's service on Tuesday, April 10th 2012 at 4PM (Pacific). email support@indextank.com for questions.


В первую очередь интересно будет узнать куда будут мигрировать такие крупные проекты как Reddit, Twitvid и Blip.tv.
Так как IndexTank открыл исходники Indextank-engine, то скорее всего эти ребята поднимут поисковые сервера сами.

Для большинства клиентов альтернативами на данный момент являются:

Совместимы с IndexTank API:
* IndexDen www.indexden.com
* Searchify www.searchify.com
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 14

Простой способ мониторинга времени отклика Sphinx индексов c помощью Zabbix

Время на прочтение 3 мин
Количество просмотров 6.4K
Sphinx *

Задача


К примеру, у вас есть уже настроенный и распространённый по всей компании сервис мониторинга Zabbix а ещё вы пользуетесь поисковым движком Sphinx. Он ищет быстро, но встроенных средств для живого мониторинга его производительности в разрезе индекса не имеет. К примеру, поисковых серверов у вас много и вы хотите соотносить потребление ресурсов системы каждым конкретным индексом дабы понимать — как распределять их по серверам — а так же видеть — какая из коллекций начинает отвечать дольше, чем хотелось бы — и понимать, коррелируется ли это с возрастанием пользовательской нагрузки или ещё чем-то.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 2

Система сбора отзывов Cackle Reviews с полнотекстовым поиском

Время на прочтение 5 мин
Количество просмотров 11K
Блог компании Cackle Разработка веб-сайтов *PostgreSQL *Sphinx *Разработка под e-commerce *
Всем привет! Не так давно мы реализовали полнотекстовый поиск для системы сбора отзывов Cackle Reviews. Получилось здорово, теперь любой модератор за несколько миллисекунд может найти интересующие его отзывы по слову или предложению с поддержкой стемминга (нечёткого поиска по части слова или его словоформам). Всё это работает на Sphinx — системе полнотекстового поиска.

В интернете есть много статей о Sphinx, но, к сожалению, часть из них устарела, некоторые другие не претендуют на полный и точный how to. Так что в данном посте мы постарались изложить все шаги — установки, настройки, индексации и поддержке дельта индекса.

система отзывов Cackle Reviews с полнотекстовым поиском

Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Комментарии 14

Sphinx distribute. Ускоряем поиск

Время на прочтение 3 мин
Количество просмотров 14K
Высокая производительность *Sphinx *
Из песочницы
Давеча у меня возникла необходимость пересмотреть работу полнотекстового поискового движка Sphinx, поскольку, некоторые нередкие запросы занимали секунды, а иные даже больше десяти. После поиска уязвимых мест и путей оптимизации нашел нехитрый способ повышения производительности — распараллеливание нагрузки на несколько потоков, в результате я получил неплохое сокращение времени запросов.

Одна из неприятных особенностей Sphinx'а — очень скудная информация на русском языке. Удивишись тем, что тема распределения нагрузки не была затронута, решил поделиться данным решением на Хабре.

Цель: повысить производительность Sphinx путём разделения нагрузки на несколько потоков.
Решение
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 6

Как устроен поиск

Время на прочтение 28 мин
Количество просмотров 33K
Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Разработка веб-сайтов *Поисковые технологии *Sphinx *
Андрей Аксёнов

Андрей Аксенов (shodan, Разработчик поискового движка Sphinx)


Поиск устроен вот так:

Краткое устройство поиска

Индексация – по большому счету, ничего сложного. Понятное дело, что по малому счету, там в каждой из трех «деталей» спрятан не то, что демон, а целое где-то стадо, где-то легион, не совсем понятно. Но концепция всегда простая. Все начинается с маленького простенького патчика к Многосерчу, а потом 15 лет этой херней занимаешься.

Берешь документы, разваливаешь их на ключевые слова. И просто взять и развалить документ на ключевые слова «мама, мыла, раму» – это ты не далеко ушел от grep’а, потому что потом все равно эти ключевые слова перебирать. Надо строить некую спец. структуру – полнотекстовый индекс. Вариантов для его построения человечество придумало в свое время довольно много, но, слава Богу, от всех отказалось и в нормальных продакшн системах, по большому счету, победил на данный момент вариант ровно один. Про него и буду рассказывать. Все остальные имеют скорее историческое значение, что ли, и практического интереса не представляют.
Всего голосов 64: ↑53 и ↓11 +42
Комментарии 22

«В активном поиске»: как мы выбирали поисковый механизм для DLP-системы

Время на прочтение 6 мин
Количество просмотров 7.7K
Блог компании Ростелеком-Солар Информационная безопасность *Oracle *PostgreSQL *Sphinx *
В ходе работы DLP-система ежедневно перехватывает огромные массивы информации – это и письма сотрудников, и информация о действиях пользователей на рабочих станциях, и сведения о хранящихся в сети организации файловых ресурсах, и оповещения о несанкционированном выводе данных за пределы организации. Но полезной эта информация будет только в случае, если в DLP реализован качественный механизм поиска по всему массиву перехваченных коммуникаций. С тех пор, как в 2000 году увидела свет первая версия нашего DLP-решения, мы несколько раз меняли механизм поиска по архиву. Сегодня мы хотим рассказать о том, какие технологии мы использовали, какие видели в них преимущества и недостатки, и почему мы от них в итоге отказывались. Возможно, кому-то наш опыт окажется полезен.

Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 1

РИТ++ 2020: консультации с инженерами Авито в Зуме

Время на прочтение 5 мин
Количество просмотров 1.7K
Блог компании AvitoTech Программирование *Администрирование баз данных *Конференции Kubernetes *

Привет, Хабр! 25 и 26 мая будет РИТ++. Это большая онлайн-конференция для всех, кто делает интернет. В обычных условиях мы бы встретились на стенде Авито в зале мероприятия, но 2020 перевернул всё с ног на голову. Так что общение переносится в Зум, где 11 наших инженеров из разных команд ответят на вопросы про базы данных, перформанс, мониторинг, микросервисную архитектуру и многое другое.


Участвовать в консультации можно независимо от того, есть у вас билет на конференцию или нет. Все встречи доступны любому желающему. Расписание, экспертные области участников и нужные ссылки — под катом. Кроме консультаций мы подготовили пару развлечений, о них в конце анонса.


Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 7

Sphinx Search 2 -> 3: бенефиты и проблемы миграции

Время на прочтение 13 мин
Количество просмотров 2.1K
Блог компании Lesta Studio Sphinx *

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

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

Проследовать в длиннопост
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 6