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

Содержание

Слайд 2

Поиск на своём сайте

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

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

elasticserach

сервер

Слайд 3

Ингредиенты поиска

Ингредиенты поиска

Слайд 4

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

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

Поисковый документ Анализ документа: токенизаиця , cтеминг, морфология, cтоп слова Термы id:184647753295609857
text:use text:plugin text:grails text:website url:grails.org/plugin/... date:2012.03.27

Слайд 5

Поисковый индекс

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

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

Слайд 6

Поисковый индекс

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

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

Слайд 7

Поисковый запрос vs SQL

SQL
cложный запросы / joins
детерминированный запрос
возвращает данные
Поисковый запрос
“плоский” select
сложные комбинации

Поисковый запрос vs SQL SQL cложный запросы / joins детерминированный запрос возвращает
атрибутов
нечёткие запросы
скоринг
возвращает метаданные

Слайд 8

Open Source

Lucene – библиотека / фреймворк - Java
Solr – всё в одном,

Open Source Lucene – библиотека / фреймворк - Java Solr – всё
прицел на “enterprise”
elasticsearch – простота
IndexTank – crowdsourcing
Sphinx – скорость - C++

Слайд 9

Что нужно хотеть от поиска?

Фейсетная навигация
авто-таксономия
кластеризация
Автокоррекция
Подсказки (автодополнение)
Пространственный поиск
в т.ч. с фейсетами
“more like

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

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

Слайд 10

Фейсеты

Динамический набор категорий

Число найденых документов
по запросу и фильтру

Активный фильтры

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

Слайд 11

Кластеризация

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

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

Слайд 12

Автокоррекция

n-gram индекс
Отдельный индекс для коррекции
Нечёткий поиск
Работает по основному индексу

Автокоррекция n-gram индекс Отдельный индекс для коррекции Нечёткий поиск Работает по основному индексу

Слайд 13

Подсказки

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

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

Слайд 14

Что индексировать?

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

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

Слайд 15

Когда индексировать?

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

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

Слайд 16

Индексные сегменты в Lucene

Логарифмическое слияние сегментов
Самые молодые сегменты можно не спешить писать

Индексные сегменты в Lucene Логарифмическое слияние сегментов Самые молодые сегменты можно не спешить писать на диск
на диск

Слайд 17

Масштабирование

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

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

Слайд 18

Масштабирование

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

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

Слайд 19

Резюме: Lucene

Фреймоворк/библиотека
Java API (нет сетевого интерфейса)
Фундамент построения поисковой системы

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

Слайд 20

Резюме: Solr

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

Резюме: Solr Feature reach поиск из коробки Эффективная поддержка фейсетов Кросс платформенные
многими CMS
Управление распределённым индексом и репликацией
Фокус: “entrprise” приложения
Обширная экосистема

Слайд 21

Резюме: Sphix

Простой и быстрый
Интеграция с MySQL
Интеграция со многими CMS
Базовый поисковый функционал
Нет фейсетов,

Резюме: Sphix Простой и быстрый Интеграция с MySQL Интеграция со многими CMS
подсказок и т.п.
Распределённый поиск (партицирование)

Слайд 22

Резюме: elasticsearch

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

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

Слайд 23

Резюме: Index tank

Index tank появился как поисковый SaaS. После покупки компании, код

Резюме: Index tank Index tank появился как поисковый SaaS. После покупки компании,
продукта был опубликован как open source.
Фокус: социальный контент и crowdsorcing
Скоринг по динамическим атрибутам (голоса и т.п.)
Управление поисковым “облаком”
Имя файла: Поиск-на-своем-сайте,обзор-open-source-решений.pptx
Количество просмотров: 120
Количество скачиваний: 0