SlideShare a Scribd company logo
C финкс и поиск терабайта Илья Кузнецов [email_address]
Что такое  sphinx? Система для организации полнотекстового поиска Бесплатн ая Открытая ( o pen-source) Интеграция с БД MySQL, pgSQL  «из коробки» поддержка других БД в будущем XML Помимо «просто» поиска ф ильтрация , г руппировка , со ртировка распределенный поиск многое другое
Benchmarks Высокая скорость : индексация :  4-12  mb/s поиск :  до нескольких сотен запросов в секунду   на 1  CPU «Тяжелые» инсталляции : по объему данных :  1.2 млрд документов,  >  1.5  TB  текста по количеству запросов : ~30  млн поисков в день используется распределенный поиск
Общие сведения Две основные программы indexer:  создает  FT  индексы из источников данных searchd:  поисковый демон, обслуживает запросы Набор  API  для разных языков л егковесные нативные клиенты к  searchd PHP, Python, Ruby, Perl, Java… SphinxSE в страиваемый в  MySQL  клиент н е хранит данные,  предоставляет доступ к  searchd
Индексация Источники данных MySQL, pgSQL xmlPipe Индексы хранятся в файловой системе имеют монолитный формат не хранят исходный текст
Индексация :  возможности Stemmers р усский , а нглийский ,  soundex ,  metaphone возможность подключения  libstemmer Wordforms Infixes , prefixes HTML stripper 1-grams Phrase boundaries Exceptions
Поиск Поиск идет по заранее построенным индексам Ранжирование результатов : по степени близости фразы по частоте ключевых слов   в коллекции по частоте ключевых слов   в документе Атрибуты : целочисленные , float, multi-valued фильтрация, сортировка, группировка
Фильтры или ключевые слова?  Основная идея :  вместо использования фильтров, добавлять искусственные ключевые слова при индексации Pipeline  поиска : Определяются кандидаты по результатам булева запроса Кандидаты   фильтруются Кандидаты ранжируются Результаты сортируются $sphinxClient->Query ( “laptop _vnd123”, “products” ); вместо $sphinxClient->SetFilter ( “vendor”, 123 ); $sphinxClient->Query ( “laptop”, “products” );
Фильтры или ключевые слова? Фильтры : использовать в случае, когда выборка по ключевым словам дает много результатов Искусственные ключевые слова : использовать в случае, когда выборка по ним возвращает мало результатов Ключевое слово :  избирательность (селективность)
Монолитные индексы Тяжело обновлять данные, полная переиндексация обычно быстрее Для малых объемов данных – быстрая переиндексация Для больших объемов данных –   схема  main+delta Возможны варианты : main+3month+week Динамическое обновление атрибутов
Распределенный поиск Агент 1 Источник : SOURCE1 Индекс : INDEX1   Хост : BOX1  Агент 2 Источник : SOURCE2  Индекс : INDEX2  Хост : BOX2   Агент 3 Источник : SOURCE 3 Индекс : INDEX3 Хост :   BOX3 Агрегатор Распределенный индекс : DIST1 Хост : WEB1
Пример настроек удаленного индекса Помимо распределенного поиска на удаленных машинах, можно применять на  multi-core  системах Распределенный поиск index dist1 { type = distributed local = index4 agent = box 1 :3312:index1 agent = box 2 :3312:index2 agent = box 3 :3312:index3 }
2-я тысяча результатов По умолчанию – 1000 результатов Обрабатываются  все  кандидаты Хранится лучшая тысяча Для типового применения этого достаточно Для пост-обработки лучше использовать возможности  sphinx: фильтрацию сортировку группировку
Заключение Значительная часть возможностей  sphinx  не попала в доклад Пробуйте! http://sphinxsearch.com/

More Related Content

PDF
Создание электронной библиотеки научных трудов на платформе Dspace
PPTX
Создание репозитория вуза на платформе Dspace
PPTX
загрузить в DSpace
PPT
Tagconf 12 - SphinxSearch - 1
PPTX
Использование цифрового идентификатора объекта (DOI) в современной научной ко...
PPT
информатика
PDF
Фишки из патентов Google
Создание электронной библиотеки научных трудов на платформе Dspace
Создание репозитория вуза на платформе Dspace
загрузить в DSpace
Tagconf 12 - SphinxSearch - 1
Использование цифрового идентификатора объекта (DOI) в современной научной ко...
информатика
Фишки из патентов Google

What's hot (17)

PPT
Основы поисковых служб
PPTX
Автоматический геокодинг
PPT
Sphinx в реальных проектах: шишки и плюшки
PDF
Информационный поиск. Инвертированный индекс. Обработка булевых запросов.
PPT
поиск информации в компьютерных сетях
PPT
Lan-Crawler Bachlor RU
PPTX
автоматическая классификация поисковых запросов
PPTX
Dev {highload}. When you should do your own db.
PPTX
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
PPTX
Prezent puti interneta_neispovedimi
PDF
кулагин поиск близких по смыслу языковых выражений
PPT
2011 09-arm-bibliografa
PPTX
Интернет
PPT
Введение в информационный поиск
PPTX
Анализ доменной зоны TJ
PDF
телекоммуникационные технологии
PPTX
поиск в интернете
Основы поисковых служб
Автоматический геокодинг
Sphinx в реальных проектах: шишки и плюшки
Информационный поиск. Инвертированный индекс. Обработка булевых запросов.
поиск информации в компьютерных сетях
Lan-Crawler Bachlor RU
автоматическая классификация поисковых запросов
Dev {highload}. When you should do your own db.
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
Prezent puti interneta_neispovedimi
кулагин поиск близких по смыслу языковых выражений
2011 09-arm-bibliografa
Интернет
Введение в информационный поиск
Анализ доменной зоны TJ
телекоммуникационные технологии
поиск в интернете
Ad

Viewers also liked (19)

PPT
Кроссбраузерные решения в рекламной сети Яндекса
PPT
Server-side JavaScript
PPT
Firebird в 2008 году: эволюция или революция
PPT
PPT
Adobe Flex константин ковалев
PDF
Мобильный интернет в России (MailRuGroup)
PPT
МойСклад - сервис SaaS от идеи до первых клиентов
PPT
Rest Xslt павел кудинов
PDF
полнотекстовый поиск в Postgre Sql олег бартунов
PPT
Web Index Report 2009-05
PPT
1С-Битрикс: Управление сайтом Версия .NET
PPT
Second Life юрий жигайло
PPT
Проверено и работает. Инструменты Oracle для разработки веб приложений
PPT
Сравнение рынков Content Management Software тут и там
PPTX
6 ошибок супер-современных стартапов
PPT
Использование Symfony
PPT
Команда-мечта: принципы, инструменты и практика построения
PPTX
Orlova pay u group_290813_
PPT
Kozyakov pay u_e-travel2013
Кроссбраузерные решения в рекламной сети Яндекса
Server-side JavaScript
Firebird в 2008 году: эволюция или революция
Adobe Flex константин ковалев
Мобильный интернет в России (MailRuGroup)
МойСклад - сервис SaaS от идеи до первых клиентов
Rest Xslt павел кудинов
полнотекстовый поиск в Postgre Sql олег бартунов
Web Index Report 2009-05
1С-Битрикс: Управление сайтом Версия .NET
Second Life юрий жигайло
Проверено и работает. Инструменты Oracle для разработки веб приложений
Сравнение рынков Content Management Software тут и там
6 ошибок супер-современных стартапов
Использование Symfony
Команда-мечта: принципы, инструменты и практика построения
Orlova pay u group_290813_
Kozyakov pay u_e-travel2013
Ad

Similar to Cфинкс и поиск терабайта (20)

PDF
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
PPT
эффективный полнотекстовый поиск по базам данных петр зайцев
PPTX
Sphinx
PPT
sphinx Hlpp2008
PPTX
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)
PDF
масштабируемый Sphinx кластер. вячеслав крюков. зал 1
PPTX
Выбираем поисковик умом головы, Андрей Аксенов (Sphinx)
PPTX
Поиск на своем сайте, обзор open source решений
PDF
Индексируй неиндексирумое
PPTX
Как устроен поиск / Андрей Аксенов (Sphinx)
PPTX
Как устроен поиск (Андрей Аксёнов)
PPTX
Как устроен поиск
PDF
Как размножается Sphinx
PDF
Sphinx. настройка, эксплуатация
PPTX
Виталий Гаврилов (Ленвендо)
PDF
Нагруженный поиск на Sphinx
PDF
SphinxSearch Meetup - Tips&tricks
PDF
Андрей Аксёнов, Sphinx Technologies Inc.
PPTX
Sphinx 2013
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
эффективный полнотекстовый поиск по базам данных петр зайцев
Sphinx
sphinx Hlpp2008
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)
масштабируемый Sphinx кластер. вячеслав крюков. зал 1
Выбираем поисковик умом головы, Андрей Аксенов (Sphinx)
Поиск на своем сайте, обзор open source решений
Индексируй неиндексирумое
Как устроен поиск / Андрей Аксенов (Sphinx)
Как устроен поиск (Андрей Аксёнов)
Как устроен поиск
Как размножается Sphinx
Sphinx. настройка, эксплуатация
Виталий Гаврилов (Ленвендо)
Нагруженный поиск на Sphinx
SphinxSearch Meetup - Tips&tricks
Андрей Аксёнов, Sphinx Technologies Inc.
Sphinx 2013

More from Media Gorod (20)

PDF
Itogi2013
PDF
Moneytree rus 1
PDF
Iidf market watch_2013
PDF
E travel 2013 ufs-f
PPTX
Travel shop 2013
PDF
13909772985295c7a772abc7.11863824
PPT
As e-travel 2013
PDF
Ishounkina internet research-projects
PPTX
E travel13
PDF
Ep presentation (infographic 2013)
PDF
Iway slides e-travel_2013-11_ready
PPTX
Data insight e-travel2013
PDF
Электронное Правительство как Продукт
PPTX
Lean мышление / Специфика Lean Startup
PDF
Глобальный взгляд на мобильный мир (Nielsen)
PDF
Как россияне используют смартфоны (Nielsen)
PDF
Meta Mass Media
PDF
Karlovyvaryparti 130406024405-phpapp02
PDF
Развитие интернета в регионах России
ODP
Владимир Перепелица "Модули"
Itogi2013
Moneytree rus 1
Iidf market watch_2013
E travel 2013 ufs-f
Travel shop 2013
13909772985295c7a772abc7.11863824
As e-travel 2013
Ishounkina internet research-projects
E travel13
Ep presentation (infographic 2013)
Iway slides e-travel_2013-11_ready
Data insight e-travel2013
Электронное Правительство как Продукт
Lean мышление / Специфика Lean Startup
Глобальный взгляд на мобильный мир (Nielsen)
Как россияне используют смартфоны (Nielsen)
Meta Mass Media
Karlovyvaryparti 130406024405-phpapp02
Развитие интернета в регионах России
Владимир Перепелица "Модули"

Cфинкс и поиск терабайта

  • 1. C финкс и поиск терабайта Илья Кузнецов [email_address]
  • 2. Что такое sphinx? Система для организации полнотекстового поиска Бесплатн ая Открытая ( o pen-source) Интеграция с БД MySQL, pgSQL «из коробки» поддержка других БД в будущем XML Помимо «просто» поиска ф ильтрация , г руппировка , со ртировка распределенный поиск многое другое
  • 3. Benchmarks Высокая скорость : индексация : 4-12 mb/s поиск : до нескольких сотен запросов в секунду на 1 CPU «Тяжелые» инсталляции : по объему данных : 1.2 млрд документов, > 1.5 TB текста по количеству запросов : ~30 млн поисков в день используется распределенный поиск
  • 4. Общие сведения Две основные программы indexer: создает FT индексы из источников данных searchd: поисковый демон, обслуживает запросы Набор API для разных языков л егковесные нативные клиенты к searchd PHP, Python, Ruby, Perl, Java… SphinxSE в страиваемый в MySQL клиент н е хранит данные, предоставляет доступ к searchd
  • 5. Индексация Источники данных MySQL, pgSQL xmlPipe Индексы хранятся в файловой системе имеют монолитный формат не хранят исходный текст
  • 6. Индексация : возможности Stemmers р усский , а нглийский , soundex , metaphone возможность подключения libstemmer Wordforms Infixes , prefixes HTML stripper 1-grams Phrase boundaries Exceptions
  • 7. Поиск Поиск идет по заранее построенным индексам Ранжирование результатов : по степени близости фразы по частоте ключевых слов в коллекции по частоте ключевых слов в документе Атрибуты : целочисленные , float, multi-valued фильтрация, сортировка, группировка
  • 8. Фильтры или ключевые слова? Основная идея : вместо использования фильтров, добавлять искусственные ключевые слова при индексации Pipeline поиска : Определяются кандидаты по результатам булева запроса Кандидаты фильтруются Кандидаты ранжируются Результаты сортируются $sphinxClient->Query ( “laptop _vnd123”, “products” ); вместо $sphinxClient->SetFilter ( “vendor”, 123 ); $sphinxClient->Query ( “laptop”, “products” );
  • 9. Фильтры или ключевые слова? Фильтры : использовать в случае, когда выборка по ключевым словам дает много результатов Искусственные ключевые слова : использовать в случае, когда выборка по ним возвращает мало результатов Ключевое слово : избирательность (селективность)
  • 10. Монолитные индексы Тяжело обновлять данные, полная переиндексация обычно быстрее Для малых объемов данных – быстрая переиндексация Для больших объемов данных – схема main+delta Возможны варианты : main+3month+week Динамическое обновление атрибутов
  • 11. Распределенный поиск Агент 1 Источник : SOURCE1 Индекс : INDEX1 Хост : BOX1 Агент 2 Источник : SOURCE2 Индекс : INDEX2 Хост : BOX2 Агент 3 Источник : SOURCE 3 Индекс : INDEX3 Хост : BOX3 Агрегатор Распределенный индекс : DIST1 Хост : WEB1
  • 12. Пример настроек удаленного индекса Помимо распределенного поиска на удаленных машинах, можно применять на multi-core системах Распределенный поиск index dist1 { type = distributed local = index4 agent = box 1 :3312:index1 agent = box 2 :3312:index2 agent = box 3 :3312:index3 }
  • 13. 2-я тысяча результатов По умолчанию – 1000 результатов Обрабатываются все кандидаты Хранится лучшая тысяча Для типового применения этого достаточно Для пост-обработки лучше использовать возможности sphinx: фильтрацию сортировку группировку
  • 14. Заключение Значительная часть возможностей sphinx не попала в доклад Пробуйте! http://sphinxsearch.com/