首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lucene.net错误:在indexWriter.Optimize函数上读取超过EOF

Lucene.net错误:在indexWriter.Optimize函数上读取超过EOF
EN

Stack Overflow用户
提问于 2013-07-10 14:00:15
回答 1查看 1.1K关注 0票数 1

我们使用lucene.net版本2.0dll在文档中进行搜索。一旦我们发布了文档,文档的内容就会被传递给lucene进行索引。一切都运行得很好。但现在当我们发布另一个文档时,它会抛出以下错误:

代码语言:javascript
运行
AI代码解释
复制
System.IO.IOException: read past EOF
at Lucene.Net.Store.BufferedIndexInput.Refill()
at Lucene.Net.Store.BufferedIndexInput.ReadByte()
at Lucene.Net.Store.IndexInput.ReadInt()
at Lucene.Net.Index.IndexWriter.ReadDeleteableFiles()
at Lucene.Net.Index.IndexWriter.DeleteSegments(ArrayList segments)
at Lucene.Net.Index.IndexWriter.MergeSegments(Int32 minSegment, Int32 end)
at Lucene.Net.Index.IndexWriter.FlushRamSegments()
at Lucene.Net.Index.IndexWriter.Optimize()

问题是我们不能删除lucene创建的文件,因为有成千上万的文档需要重新发布才能重新创建索引。请建议解决方案和/或我们收到此错误的可能原因??

代码语言:javascript
运行
AI代码解释
复制
Analyzer analyzer = new StandardAnalyzer();
Lucene.Net.Store.Directory directory = FSDirectory.GetDirectory(lucenePath, false);

try
{
    IndexReader ir = IndexReader.Open(lucenePath);
    ir.DeleteDocuments(new Term("id", document.Lang + "-" + document.IDDoc));
    ir.Close();
}
catch (Exception) { }

IndexWriter iwriter;
try
{
    iwriter = new IndexWriter(directory, analyzer, false);
}
catch (Exception)
{
    iwriter = new IndexWriter(directory, analyzer, true);
}
iwriter.SetMaxFieldLength(25000);
Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document();
doc.Add(new Lucene.Net.Documents.Field("content", fulltext, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.TOKENIZED));
doc.Add(new Lucene.Net.Documents.Field("title", document.DocName, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.TOKENIZED));
doc.Add(new Lucene.Net.Documents.Field("id", document.Lang + "-" + document.IDDoc, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.UN_TOKENIZED));
iwriter.AddDocument(doc);
iwriter.Optimize();
iwriter.Close();
directory.Close();
EN

回答 1

Stack Overflow用户

发布于 2017-02-23 17:58:38

我们也在使用Lucene.net 2.0,并且遇到了一个与您的异常类似的异常(见下文)。我解决了这个问题,删除了Lucene索引目录,并重新构建了该目录。

我们的错误:

代码语言:javascript
运行
AI代码解释
复制
System.IO.IOException: read past EOF
   at Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit, Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
   at Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a, Boolean create, MaxFieldLength mfl)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17572649

复制
相关文章
ASP.NET将Session保存到数据库中
因为ASP.NET中Session的存取机制与ASP相同,都是保存在进行中, 一旦进程崩溃,所有Session信息将会丢失,所以我采取了将Session信息保存到SQL Server中,尽管还有其它的 几个方式(本文不作介绍),要将Session保存到SQL Server中,需要有以下几个步骤: 1.首先要创建用于保存Session数据的数据库,以命令行的形式用aspnet_regsql.exe来完成,具体命令为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.5072
磊哥
2018/04/26
2.6K0
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
我们不仅可以创建相应的模板来根据Model元数据控制种类型的数据在UI界面上的呈现方法,还可以通过一些扩展来控制Model元数据本身。在某些情况下通过这两者的结合往往可以解决很多特殊数据的呈现问题,我
蒋金楠
2018/01/15
4.9K0
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
测试驱动 ASP.NET MVC Keith Burnell 下载代码示例 模型-视图-控制器 (MVC) 模式的核心是将 UI 功能划分成三个组成部分。模型表示您的领域的数据和行为。视图管理模型的显示并且处理与用户的交互。控制器协调视图和模型之间的交互。通过这样将本质上就难于测试的 UI 逻辑与业务逻辑分离开来,使得使用 MVC 模式实现的应用程序非常易于测试。在本文中,我将论述用于增强您的 ASP.NET MVC 应用程序的可测试性的最佳做法和技术,包括如何建立您的解决方案的结构、设计代码架构以便处理依
张善友
2018/01/22
5.5K0
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
ArrayList List<T> T[] Array
不保证会对 ArrayList 排序。 在执行需要对 ArrayList 排序的操作(如 BinarySearch)之前,必须对 ArrayList 进行排序。
lulianqi
2018/08/30
4230
ArrayList List<T> T[] Array
js 将数据保存到本地
name 文件名 data 数据 type mime类型 saveAs: function (name, data, type) { const element = document.createElementNS("http://www.w3.org/1999/xhtml", "a"), ev = document.createEvent("MouseEvents"), urlObject = window.URL || window.webkitURL || wi
路过君
2020/08/28
6.4K0
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2018/01/14
4K0
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2018/01/18
6K0
ASP.NET结合MVC+EF T4模板写后台管理系统框架(5)- 创建数据库
其实网站就是一座连接用户和数据库的梁桥 数据库通过网站,将信息以不同的方式,展现给客户,客户通过网站,对数据库进行各种操作 下面,我们用一个例子,给大家展示下基本的增删改查操作 创建数据库 创建数据模型,并根据模型生成数据库 输入数据库信息,生成数据库 记得选择是 点击完成后,会生成sql语句,右键,执行 出现这条信息,说明执行成功,至此,数据库创建完成
骤雨重山
2022/01/17
5780
ASP.NET结合MVC+EF T4模板写后台管理系统框架(5)- 创建数据库
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2019/12/06
1.1K0
将所有对象存到数据库中在Shop.m中
如果将字典或数组直接存储在数据库中,会将数组或字典转化成字符串,所以可以使用归档与反归档的方法将数据进行编码和解码成二进制数据进行存储,而在数据库中需要使用blob类型存储二进制数据。
hrscy
2018/08/30
1.4K0
数据库查询出的数据list 集合,转为json 的形式存到redis
数据库查询出的数据list 集合,转为json 的形式存到redis, 写一个接口,直接查询redis ,将数据返回;
一写代码就开心
2023/02/13
5960
将查询结果保存到excel中
<?php //****************连接数据库*************** $localhost=”localhost”; $root=”root”; // 用户 $databasen
苦咖啡
2018/05/07
1.7K0
ASP.NET MVC Section
本篇文章我们来讨论一下ASP.NET MVC框架中的Section。 Section主要用于将一部分代码插入到 Layout页面中的指定位置。通俗地说就是,我们先在 Layout页面中通过@RenderSection("Header")的方式挖一个坑,告诉下面的视图页面说,我这个地方有个坑,你们把你们各自相关的代码放进来吧。然后,使用该Layout的视图页面通过如下的方式将一坨坨的代码送到Layout的坑中。
全栈程序员站长
2022/09/15
7690
如何将Excel和xml文件数据保存到数据库
Inherits System.Windows.Forms.Form     Dim DS1 As New System.Data.DataSet     Dim DS2 As New System.Data.DataSet
Java架构师必看
2021/03/22
2.1K0
ServiceStack.Host.MVC vs ASP.NET MVC
ServiceStack.Host.MVC vs ASP.NET MVC解决方案解决方案子项ServiceStack.Host.MVC(3.9.71)ASP.NET MVC(3.0)路由 路由规则1.只能配置/home/{name}/{page}形式 2.不能对匹配区域({name})指定任何形式的通配符(正则,等等)1.可配置各种形式的规则,比如:home/{name}_{page} 2.可以对匹配区域({name})指定正则匹配路由匹配url->路由表->RequestDTO->根据request.me
KenTalk
2018/09/11
9170
JSONArray转换成List<T>
这个是针对mybatis中json对象映射成实体类的需求,mybatis通过(typeHandler = FastjsonTypeHandler.class)会把数据库类型是json的转换为List类型,但是本质上没有变。打印出来会是这样:
全栈程序员站长
2022/09/07
1K0
ASP.NET MVC升级到ASP.NET Core MVC踩坑小结
ASP.NET Core是微软新推出的支持跨平台、高性能、开源的开发框架,它的优势不必多说,因为已经说得太多了。当然,现在依然有着数量庞大的系统运行于.NET Framework上,由于有大量的Break Changes,很多项目项目团队也不敢贸然升级,其中的考量也不全部是技术原因,更多的可能还是业务推进因素。
AI.NET 极客圈
2020/05/18
2.4K0
ASP.NET MVC使用javascript
@if (IsSectionDefined(“SubMenu”)) { @RenderSection(“SubMenu”, required: false) }
全栈程序员站长
2022/09/15
8590
ASP.NET MVC Action Filters
在看这篇Fun with Http Headers in ASP.NET MVC Action Filters的时候,提到了 Roni Schuetz在codeplex上创建的一个项目ASP.NET MVC Action Filters。计划在5月10日推出第一个版本。 项目计划包含的Action Filter: Action filter for creating easy REST API with JSON and XML Action filter for logging scenarios
张善友
2018/01/22
8630
ASP.NET MVC HtmlHelper类
ASP.NET MVC之 HtmlHelper 在ASP.NET MVC项目的开发中,一般会默认使用Razor视图来进行View层的编写,从而实现高效率的C#/HTML代码的混写。 示例 诸如下述代码
李郑
2018/03/01
1.9K0
ASP.NET MVC HtmlHelper类

相似问题

将List<T>保存到XML文件

62

ASP.Net MVC 3 DataAnnotations验证List<T>

24

从List<T>保存到txt

71

ASP.NET MVC2 List<T>模型验证

11

ASP.NET MVC 3 List<T>到IEnumerable<SelectListItem>

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档