Sphinx real-time

Professor

Новичок
Добрый день.

Есть база с около 100К товарами.
Для поиска используется Sphinx

В индекс сфинкса попадают только товары, у которых наличие больше 0. Но наличие очень частоменяется, А индекс очень большой. Запрос формирующий его сложный. И обновление индекса происходит 5-10 минут.


Вопрос, как обновлять информацию в индексе только о тех товарах, у которых изменилось наличие?

Нашел что у Sphinx есть типа индексов - real time.
Но несовсем понятно как он работает.
Объясните пожалуйста. Подходит ли он для решения моей задачи?
 

Sender

Новичок
еще посмотри в сторону дельта индексов, вполне вероятно что можно их прикрутить
 

MiksIr

miksir@home:~$
Дельты - это что бы добавлять новое. А удалять - через атрибуты.
 

fixxxer

К.О.
Партнер клуба
Нет, ну почему, есть килл-листы.
Но если "наличие" меняется все время - наиболее эффективно индексировать все и выставлять-обновлять атрибут наличия.
 

Sender

Новичок
Дельты - это что бы добавлять новое. А удалять - через атрибуты.
по идее можно выставить наличие 0 и timestamp записи изменить, наличие вынести в аттрибут. Потом в дельте выбирать изменившиеся записи и переиндексировать их, а уже в запросе к сфинксу добавить условие наличия по аттрибуту

это конечно теория, но вполне должно работать
 

Professor

Новичок
Всем спасибо. Начитался я про сфинкс.
Данную задачу можно решить 3 способами:
1) Как предложил fixxxer
2) Смерживать дельта индекс с основным. При этом дельта индекс должен формироваться не из новых товаров, а из всех товаров которые были изменены после последнего смерживания.э
3) С использованием real time индексов.
 
Сверху