я уже читал этот вопрос
Создание и обновление индексов Zend_Search_Lucene .
Но он не смог ответить на мою проблему. Эта статья от Zend сообщает, что обновление документа невозможно. Для эффективного обновления каждый документ должен быть удален и переиндексирован.
$removePath = ...;
$hits = $index->find('path:' . $removePath);
foreach ($hits as $hit) {
$index->delete($hit->id);
}
Теперь, это не работает для меня. Я дал индексный путь в $removePath
и попробовал код. Это не сработало. Если я использую что-то относительно моего конкретного индекса, например, $index->find("title:test");
, это выдает
Fatal error: Exception thrown without a stack frame in Unknown on line 0
Я также пытался использовать
$query = new Zend_Search_Lucene_Search_Query_Term(new Zend_Search_Lucene_Index_Term('test', 'title'));
$hits = $this -> index->find($query);
Но это дало тот же результат.
Я даже не знаю, как отладить этот тип ошибки. И даже если это отлажено, я получу только найденные элементы, а не все документы. Итак, не все документы удалены.
Может кто-нибудь, скажите мне, что я делаю не так. Как обновить ваши поисковые индексы?