Zend Lucene删除文件

时间:2013-12-23 21:37:46

标签: zend-framework search lucene zend-lucene

我对索引文件中删除文档有疑问。

我有这个:

$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));

在delete方法中的 ZendSearch / library / ZendSearch / Lucene / Index.php 。而且它让我无效。这是正常的吗?如果删除方法物理从索引中删除文档或只是设置此文件被删除的标志?我可能在2年前使用lucene,它从索引文件中物理删除文件。所以删除后我无法通过Luke看到我的索引条目。

1 个答案:

答案 0 :(得分:0)

如果Luke没有显示您删除的文档,那么即使文档仍在索引中也无关紧要 - 已删除的文档已被Lucene搜索引擎删除,并将在索引中稍后删除过程