Поиск на своем сайте,обзор open source решений презентация

Содержание

Поиск на своём сайте Искать SQLем по своей базе Вы наверное не слышали об альтернативах Использовать поиск от / Отличный вариант для небольших

Слайд 1Поиск на своем сайте, обзор open source решений
Олег Бунин


Слайд 2Поиск на своём сайте
Искать SQLем по своей базе
Вы наверное не слышали

об альтернативах
Использовать поиск от /
Отличный вариант для небольших статических сайтов
Установить у себя поисковый движок



elasticserach

сервер


Слайд 3Ингредиенты поиска


Слайд 4Поисковый документ




Анализ документа: токенизаиця , cтеминг, морфология, cтоп слова

Термы
id:184647753295609857 author:pledbook tag:grails tag:elasticserach

text:look text:use text:plugin text:grails text:website url:grails.org/plugin/... date:2012.03.27



Слайд 5Поисковый индекс
Типичная RDBMS
Инвертированный индекс
Индекс по отдельному полю или композитному полю
Одно значение

на поле (full text – много значений)
Обычно только один из индексов используется в select`е
Btree – эффективные апдейты


Слайд 6Поисковый индекс
Типичный поисковый движок
Инвертированный индекс
Все поля в одном индексе
Произвольное количество значений

поля на документ
Поиск происходит по всем полям запроса одним махом
Интегрированный скоринг
Плотный бинарный формат индекса – read only

Слайд 7Поисковый запрос vs SQL
SQL
cложный запросы / joins
детерминированный запрос
возвращает данные

Поисковый запрос
“плоский” select
сложные

комбинации атрибутов
нечёткие запросы
скоринг
возвращает метаданные

Слайд 8Open Source
Lucene – библиотека / фреймворк - Java
Solr – всё в

одном, прицел на “enterprise”
elasticsearch – простота
IndexTank – crowdsourcing
Sphinx – скорость - C++


Слайд 9Что нужно хотеть от поиска?
Фейсетная навигация
авто-таксономия
кластеризация
Автокоррекция


Подсказки (автодополнение)
Пространственный поиск
в т.ч. с фейсетами
“more

like this”

в дополнение к качественным и релевантным результатам


Слайд 10Фейсеты
Динамический набор категорий
Число найденых документов
по запросу и фильтру
Активный фильтры


Слайд 11Кластеризация

Кластеры создаются на основе текста документов


Слайд 12Автокоррекция
n-gram индекс
Отдельный индекс для коррекции


Нечёткий поиск
Работает по основному индексу




Слайд 13Подсказки
Похоже на автокоррекцию. Запрос “дописывается” на основе словаря в индексе и

дополняется ключевыми словами на основе статистики.


Слайд 14Что индексировать?
Каталог продуктов
Джинсы Levis #559, индиго
Джинсы Levis #559, индиго, размер 32x32
Что

считать документом?


Слайд 15Когда индексировать?
Поисковые индексы нужно перестраивать
Периодическая переиндексация всех документов
Динамические атрибуты (пример наличие

на складе)
Сегментированный индекс
Позволяет изменять набор документов без перестройки всего индекса
Требует регулярной “оптимизации” индекса

Слайд 16Индексные сегменты в Lucene
Логарифмическое слияние сегментов





Самые молодые сегменты можно не спешить

писать на диск


Слайд 17Масштабирование
Производительность
упирается в CPU
сложные запросы могут быть очень CPU-ёмкими
решение – несколько реплик

индекса
read-only файлы облегчают задачу

Слайд 18Масштабирование
Объём индекса
Индекс должен помещаться в память
Решение – партицирование индекса
Каждая партиция выполняет

скоринг независимо
Результаты нужно агрегировать

Слайд 19Резюме: Lucene
Фреймоворк/библиотека
Java API (нет сетевого интерфейса)
Фундамент построения поисковой системы



Слайд 20Резюме: Solr
Feature reach поиск из коробки
Эффективная поддержка фейсетов
Кросс платформенные клиент (HTTP)
Интеграция

со многими CMS
Управление распределённым индексом и репликацией
Фокус: “entrprise” приложения
Обширная экосистема

Слайд 21Резюме: Sphix
Простой и быстрый
Интеграция с MySQL
Интеграция со многими CMS
Базовый поисковый функционал
Нет

фейсетов, подсказок и т.п.
Распределённый поиск (партицирование)

Слайд 22Резюме: elasticsearch
Управление распределённым индексом
Простой HTTP API
Иcпользует Lucene
Фейсеты
Проще в настройке чем Solr
Фокус:

простота и масштабируемость

Слайд 23Резюме: Index tank
Index tank появился как поисковый SaaS. После покупки компании,

код продукта был опубликован как open source.
Фокус: социальный контент и crowdsorcing
Скоринг по динамическим атрибутам (голоса и т.п.)
Управление поисковым “облаком”

Слайд 24Спасибо
Алексей Рагозин
alexey.ragozin@gmail.com


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика