gpt4 book ai didi

full-text-search - 如何在 LuceneNet 中使用 indexWriter 删除文档

转载 作者:行者123 更新时间:2023-12-04 20:00:17 26 4
gpt4 key购买 nike

我在我的 Controller 中调用了这个方法,它必须删除一个特定的文档。我在一些文章中读到删除文档的最佳方法是使用 IndexWriter。但我不能让它工作。这是我的代码

我的指数:

    var article1 = new Document();
article1.Add(new Field("Id", "1", Field.Store.YES, Field.Index.ANALYZED));
article1.Add(new Field("Author", "Author", Field.Store.YES, Field.Index.ANALYZED));
article1.Add(new Field("Title", "Title", Field.Store.YES, Field.Index.ANALYZED));

var directory = FSDirectory.Open(new DirectoryInfo(IndexRoute));
var analyzar = new StandardAnalyzer(Version.LUCENE_29);

var writer = new IndexWriter(directory, analyzar, true, IndexWriter.MaxFieldLength.LIMITED);

writer.AddDocument(article1);
writer.Optimize();
writer.Commit();
writer.Close();

删除方法:
public void Delete(string id)
{
var directory = FSDirectory.Open(new DirectoryInfo(IndexRoute));
var analyzar = new StandardAnalyzer(Version.LUCENE_29);
var writer = new IndexWriter(directory, analyzar, true, IndexWriter.MaxFieldLength.LIMITED);
var term = new Term("Id", id);
writer.DeleteDocuments(term);
writer.Optimize();
writer.Commit();
writer.Close();
}

Controller 中调用“删除”无效的方法:
  public ActionResult Delete()
{
_carService.Delete("1");
return RedirectToAction("Index", "Home");
}

所以我找不到我的错误,请帮忙...

最佳答案

当您为这样的删除方法构建 IndexWriter 时:

new IndexWriter(directory, analyzar, true, IndexWriter.MaxFieldLength.LIMITED);

您正在为 create 参数指定 true ,它会用空索引覆盖现有索引,删除所有文档。

关于full-text-search - 如何在 LuceneNet 中使用 indexWriter 删除文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439505/

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