Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Всем привет.
Понадобилось реализовать полнотекстовый поиск, и решил попробовать sphinx.
Но возникли проблемы с удалением документов в индексе.
Как я понял такового удаления из индекса в sphinx вообще нет, и место этого нужно обновлять поле флаг в документе и фильтровать по нему исключая из результатов поиска.
Но эти ненужные документы так и останутся в индексе что меня не устраивает, прочитал про main + delta и подумал то что нужно, так как документов со временем может быть много, и разумно будет сделать 2 индекса, delta - документы за день, main - все документы, и объединять их через сутки например, и производить обновления уже в delta индексе, но при объединение не нужно что бы в основной индекс попали документы помеченные как удаленные.
Пытался сделать это вот этой командой:
indexer --merge main delta --merge-dst-range deleted 0 0
но в основной индекс все ровно попадают удаленные документы, но уже с флагом 0 (типа не удален)
Но все ровно если документа уже не будет в delta то нужно его удалить с main, и вот тут я даже не знаю как это бы сделать...
Читал про kill list, если сделать его на delta то это только не даст в результаты поиска уделенные документы, но сами документы же будут так и находиться в main индексе.
Думаю кто использовал sphinx не составит труда помочь мне с удалением.
----- Так было, так есть и так будет
EuGen
Отправлено: 20 Июля, 2013 - 13:10:15
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
vanicon
Создать VIEW, в которую будут попадать только активные документы ("удалён"=0) и индексировать по этому VIEW. Тогда задача решается автоматически.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
vanicon
Отправлено: 20 Июля, 2013 - 14:08:22
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
EuGen
Не понял вас, можно по подробнее?
----- Так было, так есть и так будет
EuGen
Отправлено: 20 Июля, 2013 - 15:10:11
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
vanicon
Создать в БД VIEW (представление) как выборку тех материалов, которые нужно индексировать, добавив условие активности ("удалён"=0) в выборку. Индексировать в sphinx это VIEW (и только его, ничего более не индексировать) и получить результат.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.