Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите с sphinx

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Удаление документов
vanicon
Отправлено: 20 Июля, 2013 - 10:33:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 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 не составит труда помочь мне с удалением.


-----
Так было, так есть и так будет
 
 Top
EuGen Администратор
Отправлено: 20 Июля, 2013 - 13:10:15
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




vanicon
Создать VIEW, в которую будут попадать только активные документы ("удалён"=0) и индексировать по этому VIEW. Тогда задача решается автоматически.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vanicon
Отправлено: 20 Июля, 2013 - 14:08:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




EuGen
Не понял вас, можно по подробнее?


-----
Так было, так есть и так будет
 
 Top
EuGen Администратор
Отправлено: 20 Июля, 2013 - 15:10:11
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




vanicon
Создать в БД VIEW (представление) как выборку тех материалов, которые нужно индексировать, добавив условие активности ("удалён"=0) в выборку. Индексировать в sphinx это VIEW (и только его, ничего более не индексировать) и получить результат.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Прочее »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB