gpt4 book ai didi

.net - Lucene .NET IndexWriter DeleteDocuments 不工作

转载 作者:行者123 更新时间:2023-12-05 00:37:47 25 4
gpt4 key购买 nike

这是代码:

Try
Dim util As New IndexerUtil()
Dim dir As Lucene.Net.Store.Directory = FSDirectory.Open(New DirectoryInfo(util.getIndexDir()))
Dim indexWriter As New IndexWriter(dir, New SimpleAnalyzer(), indexWriter.MaxFieldLength.UNLIMITED)

Dim numDocs As Integer = indexWriter.NumDocs()

indexWriter.DeleteDocuments(New Term("id", insightId))
indexWriter.Optimize()
indexWriter.Commit()
indexWriter.Close()
numDocs = indexWriter.NumDocs()

Catch ex As Exception
LOG.Error("Could not remove insight " + insightId + " from index", ex)
End Try

numDocs = 85 两次

我还有一个我写的小 gui 应用程序,它读取索引并以漂亮的格式打印文档。 id 字段等于insightId 的文档肯定存在,并且在“删除”后仍然存在。

以下是 id 字段的创建方式
doc.Add(New Field("id", insightID, Field.Store.YES, Field.Index.ANALYZED)) //insightID is an integer

最佳答案

正如您可能在 more recent post 中发现的那样,您的 ID 列未正确编入索引,因为 SimpleAnalyzer用途 LetterTokenizer ,它只返回字母。

考虑使用 KeywordAnalyzer代替 id field 。

关于.net - Lucene .NET IndexWriter DeleteDocuments 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6535654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com