У меня вопрос об удалении документа в индексном файле.
У меня есть это:
$index = Zend_Search_Lucene::open('data/index');
foreach ($index->find('pk:' . $this->getId()) as $hit) {
$index->delete($hit->id);
}
$index->commit();
И я использую Luke (он может открывать индексный файл)
Поэтому перед удалением я вижу в своей записи индекса. И после удаления эта запись все еще существует в индексном файле, но в папке я вижу файл, например, _c0_del. Итак, если это нормально, что после удаления я могу увидеть свою запись в индексном файле? Или в моем коде какая-то ошибка? я пытаюсь сделать
var_dump($segmentInfo->delete($id - $segmentStartId));
В ZendSearch/библиотеке/ZendSearch/Lucene/Index.php в методе удаления. И это дает мне ноль. Это нормально? Если метод удаления физически удаляет документ из индекса или просто устанавливает флаг, что этот документ удален? Я использую Lucene, может быть, 2 года назад, и он физически удаляет документ из индексного файла. Поэтому после удаления я не вижу свою запись в индексе через Люк.