首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Lucene .NET IndexWriter DeleteDocuments不工作

Lucene .NET是一个开源的全文搜索引擎库,它提供了强大的文本搜索和索引功能。IndexWriter是Lucene .NET中的一个核心组件,用于创建和管理索引。

针对你提到的问题,Lucene .NET的IndexWriter的DeleteDocuments方法用于删除指定的文档。但是,有几个可能导致DeleteDocuments方法不起作用的原因:

  1. 索引未被正确打开:在使用IndexWriter之前,需要确保索引已经被正确地打开。可以通过检查索引的状态来确认是否成功打开。
  2. 文档未被正确标识:DeleteDocuments方法需要传入一个标识符来指定要删除的文档。如果标识符不正确或者文档不存在,删除操作将不会生效。确保传入的标识符与要删除的文档匹配。
  3. 索引未被正确提交:在删除文档后,需要调用IndexWriter的Commit方法来提交更改。如果未执行提交操作,删除操作将不会生效。确保在删除文档后调用Commit方法。
  4. 索引被锁定:如果其他进程或线程正在使用索引,可能会导致删除操作不起作用。确保索引未被其他进程或线程锁定。

综上所述,如果Lucene .NET的IndexWriter的DeleteDocuments方法不起作用,可以按照以下步骤进行排查和修复:

  1. 确保索引已正确打开。
  2. 检查传入的文档标识符是否正确。
  3. 确保在删除文档后调用了Commit方法。
  4. 检查索引是否被其他进程或线程锁定。

对于Lucene .NET的更多信息和详细的API文档,可以参考腾讯云的Lucene .NET产品介绍页面:Lucene .NET产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Lucene.net(4.8.0) 学习问题记录三: 索引的创建 IndexWriter 和索引速度的优化

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。...因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。...Lucene.net 4.8.0    https://github.com/apache/lucenenet PanGu分词 https://github.com/LonghronShen/Lucene.Net.Analysis.PanGu.../tree/netcore2.0 Lucene.net 4.8.0 和之前的Lucene.net 3.6.0 改动还是相当多的,这里对自己开发过程遇到的问题,做一个记录吧,希望可以帮到和我一样需要升级Lucene.net...具体一点:IndexWriter在执行AddDocuments(写入文档),DeleteDocuments(删除文档),UpdateDocuments(更新文档),这些操作的时候,这些操作都会先缓冲到内存中

1.3K110

使用Lucene.Net做一个简单的搜索引擎-全文索引

Lucene.Net Lucene.netLucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。...Lucene.net是Apache软件基金会赞助的开源项目,基于Apache License协议。 Lucene.net并不是一个爬行搜索引擎,也不会自动地索引内容。...我们得先将要索引的文档中的文本抽取出来,然后再将其加到Lucene.net索引中。标准的步骤是先初始化一个Analyzer、打开一个IndexWriter、然后再将文档一个接一个地加进去。...当前Lucene.Net.Analysis.SmartCn包还未发布正式版,所以搜索时要勾选“包括预发行版本”: IndexWriter IndexWriter用于将文档索引起来,它会使用对应的分析器...using Lucene.Net.Analysis; using Lucene.Net.Analysis.Cn.Smart; using Lucene.Net.Documents; using Lucene.Net.Index

1.1K00

Spring Boot 中使用 Java API 调用 lucene

我们可以看到,Lucene的使用主要体现在两个步骤: 1 创建索引,通过IndexWriter对不同的文件进行索引的创建,并将其保存在索引相关文件存储的位置中。 2 通过索引查寻关键字相关文档。...反向信息 反向信息保存了词典的倒排表映射:term–>document IndexWriter lucene中最重要的的类之一,它主要是用来将文档加入索引,同时控制索引过程中的一些参数使用。...= indexWriter.deleteDocuments(new Term("title", "Spark")); // 除此之外IndexWriter还提供了以下方法: // DeleteDocuments...// DeleteDocuments(Term term):根据Term来删除单个或多个Document // DeleteDocuments(Term[] terms):根据Term来删除单个或多个...TermQuery可以理解成为“词条搜索”, * 在搜索引擎中最基本的搜索就是在索引中搜索某一词条,而TermQuery就是用来完成这项工作的。

2.7K50

Lucene 全文检索

索引: 商品的id,图片的路径等这个是不需要作为查询条件的,因此不需要索引 是否存储 将Field值存储在文档中,存储在文档中的Field才可以从Document中获取。...Field的常用类型 Field改进 图书id 是否分词:不用分词,因为不会根据商品id来搜索商品 是否索引:索引,因为不需要根据图书ID进行搜索 是否存储:要存储,因为查询结果页面需要使用id...是否索引:要索引 是否存储:要存储 图书图片地址: 是否分词:不分词 是否索引:索引 是否存储:要存储,因为只有根据图片地址才能找到对应的图片 图书描述: 是否分词:要分词 是否索引:要索引...writer.deleteDocuments(new Term("域名","值")); @Test public void deleteIndex() throws Exception { //...IndexWriter(directory, cfg); ​ // Terms writer.deleteDocuments(new Term("id", "1")); ​ writer.close

1.2K40

一步一步学lucene——(第三步:索引篇)

在前面概要的了解了lucene的内容下面就深入一下lucene的各个模块。这里我们主要深入一下lucene的索引,就是如何构建索引的过程及概念。...2、分析文档这个过程很重要,当我们建立起文档和域之后,就可以使用IndexWriter对象的addDocument方法将数据传递给Lucene进行索引操作了。...删除索引中的文档 删除索引中的文档主要有下面几个方法: deleteDocuments(Term)——删除指定包含项的文档 deleteDocuments(Term[ ])——删除包含项数组中的所有文档...deleteDocuments(Query)——删除匹配查询语句的所有文档 deleteDocuments(Query[ ])——删除匹配查询数组中的所有文档 deleteAll()——删除索引中的所有文档...writer = new IndexWriter(dir, new StandardAnalyzer(Version.LUCENE_30), IndexWriter.MaxFieldLength.UNLIMITED

1.1K60

Lucene.net(4.8.0) 学习问题记录四: IndexWriter 索引的优化以及思考

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。...因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。...Lucene.net 4.8.0    https://github.com/apache/lucenenet PanGu分词 https://github.com/LonghronShen/Lucene.Net.Analysis.PanGu.../tree/netcore2.0 Lucene.net 4.8.0 和之前的Lucene.net 3.6.0 改动还是相当多的,这里对自己开发过程遇到的问题,做一个记录吧,希望可以帮到和我一样需要升级Lucene.net...原本9个小时的索引重建工作也缩短到了6个半小时。这里要提一下IndexWriter.AddIndexes(),有两个函数.

1.2K80

借助 Lucene.Net 构建站内搜索引擎(上)

相信做过站内搜索的.Net程序员应该对Lucene.Net陌生,没做过的也许会问:就不是个查询嘛!为什么不能使用Like模糊查找呢?原因很简单:模糊查询的契合度太低,匹配关键字之间不能含有其他内容。...因此,有必要了解一下Lucene.Net这个神器(也许现在早已不是)! 一、Lucene.Net简介 ? Lucene.Net只是一个全文检索开发包,不是一个成型的搜索引擎。...首先,我们准备一个ASP.Net Web项目(这里使用的是WebForms技术),引入Lucene.Net和PanGu的dll,以及加入CJK分词的两个class(均在附件下载部分可以下载),分词演示Demo...附件下载 Lucene.Net开发包 : 点我下载 PanGu盘古分词开发包:点我下载 简单搜索引擎Demo:点我下载 参考资料 (1)杨中科,《Lucene.Net站内搜索公开课》 (2)痞子一毛...,《Lucene.Net》 (3)MeteorSeed,《使用Lucene.Net实现全文检索》 (4)Lucene.Net官方网站:http://lucenenet.apache.org/download.html

1K20

Lucene全文检索工具包学习笔记总结

Lucene—-全文检索的工具包 隶属于apache(solr也是属于apache,solr底层的实现是Lucene) 一、数据的分类: 结构化数据 具有固定类型和长度的数据 比如:数据库...全文检索模仿的是字典查找 四、Lucene 1.含义: Lucene是一个全文检索的工具包(jar); 通过Lucene可以构建一个全文检索系统。...(); } 七、全文检索删除 删除索引使用的IndexWriter对象 所以分词器需要和创建索引的时候保持一致 删除所有indexWriter.deleteAll(); 根据某个词元进行删除indexWriter.deleteDocuments..._4_10_3, analyzer); //创建索引和文档写对象 IndexWriter indexWriter = new IndexWriter(directory, config)...indexWriter.deleteDocuments(new Term("fileName", "apache")); //提交 indexWriter.commit();

44720

火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能

Lucene.Net Lucene.netLucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,是一个Library.你也可以把它理解为一个将索引...开发人员可以基于Lucene.net实现全文检索的功能。 注意:Lucene.Net只能对文本信息进行检索。...Lucene.Net会把扔给它的文本切词保存,加快检索速度。...Lucene.Net 核心——分词算法(Analyzer) 学习Lucune.Net,分词是核心。当然最理想状态下是能自己扩展分词,但这要很高的算法要求。...Lucene.Net核心类简介(一) Directory表示索引文件(Lucene.net用来保存用户扔过来的数据的地方)保存的地方,是抽象类,两个子类FSDirectory(文件中)、RAMDirectory

1.5K70
领券