Sphinx удаление из индекса

vanicon

Новичок
Всем привет.
Нужен полнотекстовый поиск, и подумал nginx хорошо подойдет.
Ни разу еще не работал с ним, поэтому появились вопросы, уже 2 день курю маны.....
Вообщем в качестве источника будет xmlpipe2, так как sphinx пока не умеет работать с mongo.
Будем много документов несколько сот тысяч, но они маленькие текста не более 300 символов, и выбирать буду тока id, что бы потом брать документы с mongo.
Но вопрос соответственно в том, как удалять из индекса в sphinx, изменяться документы не будут а вот удаляться все же будут иногда, читал что делают дополнительный атрибут (флаг) и изменяют его при удалении, delta + осн индекс, но как чистить потом эти индексы от этого мусора?
Видел так же rt индексы, но вроде пишут что они медленно работают и требуют не мало ram, у меня критична запись в индекс, удаление же будет редким.
Ребят кто работал уже со sphinx'om направьте в нужном направлении.
 

Adelf

Administrator
Команда форума
vanicon
если ты внимательно читал про дельта + основной индекс, то должен понимать, что при обновлении основного индекса удаленные исчезнут из него.
 

vanicon

Новичок
Adelf
Я обновляю поле на 1, по которому фильтрую в дельте, потом сливаю его с основным индексом, и что те документы у которого флаг был = 0, удалятся?
 

fixxxer

К.О.
Партнер клуба
тебе дать ссылку на мануал или сам найдешь в нем про килллисты?
 

Adelf

Administrator
Команда форума
vanicon
всетаки маны прочти. это(kill lists) как раз то что нужно. Что-то я давно Sphinx не юзал :) забыл.
 

vanicon

Новичок
После прочтения различных статей по теме main + delta.
Как я понял, новые записи заносятся в delta index, а удаляются записи обновлением флага в дельте, и фильтрации по этому флагу, а через сутки можно объединять delta и main но не добавлять документы в основной индекс если у них флаг удален.
Но а если в основном индексе необходимо тоже удалить документ которого у дельта индексе уже нет, тогда что делать?
Конечно можно использовать kill list в дельта индексе, но ведь не нужные документы так и останутся в основном индексе...
Но когда я объединяю индексы то в основной индекс все ровно записываются документы помеченные флагом удаления, но в основном индексе у них уже флаг не удаленного документа...
Команда которой я объединяю индексы:
indexer --merge main delta --merge-dst-range deleted 0 0
По умолчанию флаг deleted=0, а потом обновляется на 1.
Помогите пожалуйста прояснить ситуацию.
 

fixxxer

К.О.
Партнер клуба
indexer умеет мержить килллисты, если его специально попросить
--merge-klists или что то в этом духе
 
Сверху