我已经阅读了这个问题 创建和更新 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);
但它给出了相同的结果。
我什至不知道如何调试这种类型的错误。即使它被调试,我也只会得到搜索的项目而不是所有的文档。因此,不会删除所有文档。
谁能告诉我我做错了什么。如何更新您的搜索索引?