Я не новичок в 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()
.но проблема в том, что после удаления документа я могу искать в нем еще и отображать значения его полей.
Я проверил это после оптимизации индексов, но проблема еще жива.Мне нужно полностью удалить документ или выполнить поиск в документах, которые не удалены из индексов.