我对 zend lucene 并不陌生,但我在搜索时遇到了麻烦。 我使用以下代码按数字搜索文档:
$term = new Zend_Search_Lucene_Index_Term($id, $idFieldName);
$docIds = $index->termDocs($term);
foreach ($docIds as $id) {
$doc = $index->getDocument($id);
echo $doc->artist_name;
}
$index->commit();
并使用以下代码按编号删除文档:
$term = new Zend_Search_Lucene_Index_Term($id, $idFieldName);
$docIds = $index->termDocs($term);
foreach ($docIds as $id) {
$doc = $index->getDocument($id);
$index->delete($doc->lyric_id);
}
$index->commit();
当我删除一个文档时,$index->numDocs()
显示该文档被删除,因为返回的值不等于 的返回值$index->count()
。但问题是,删除文档后,我还可以在其中进行搜索,并且可以显示其字段的值。
我在优化索引后进行了检查,但问题仍然存在。我需要完全删除一个文档或搜索未从索引中删除的文档。