Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复损坏的lucene索引?_Lucene - Fatal编程技术网

如何修复损坏的lucene索引?

如何修复损坏的lucene索引?,lucene,Lucene,我的服务器断电,lucene索引损坏。我运行了IndexChecker,但失败了: java -cp /home/dthoai/programs/paesia/checker/lucene-core-3.5.0.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /mnt/peda/paesia/index -fix Opening index @ /mnt/peda/paesia/index ERROR: cou

我的服务器断电,lucene索引损坏。我运行了IndexChecker,但失败了:

java -cp /home/dthoai/programs/paesia/checker/lucene-core-3.5.0.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /mnt/peda/paesia/index -fix


Opening index @ /mnt/peda/paesia/index

ERROR: could not read any segments file in directory
java.io.IOException: read past EOF: MMapIndexInput(path="/mnt/peda/paesia/index/segments_ls0l")
at org.apache.lucene.store.MMapDirectory$MMapIndexInput.readByte(MMapDirectory.java:279)
at org.apache.lucene.store.ChecksumIndexInput.readByte(ChecksumIndexInput.java:41)
at org.apache.lucene.store.DataInput.readInt(DataInput.java:84)
at org.apache.lucene.store.DataInput.readLong(DataInput.java:126)
at org.apache.lucene.index.SegmentInfo.<init>(SegmentInfo.java:202)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:286)
at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:363)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:754)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:593)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:359)
at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:327)
at org.apache.lucene.index.CheckIndex.main(CheckIndex.java:1007)
java-cp/home/dthoai/programs/paesia/checker/lucene-core-3.5.0.jar-ea:org.apache.lucene。。。org.apache.lucene.index.CheckIndex/mnt/peda/paesia/index-fix
期初指数@/mnt/peda/paesia/index
错误:无法读取目录中的任何段文件
java.io.IOException:读取超过EOF:MMapIndexInput(path=“/mnt/peda/paesia/index/segments_ls0l”)
位于org.apache.lucene.store.MMapDirectory$MMapIndexInput.readByte(MMapDirectory.java:279)
位于org.apache.lucene.store.ChecksumIndexInput.readByte(ChecksumIndexInput.java:41)
位于org.apache.lucene.store.DataInput.readInt(DataInput.java:84)
位于org.apache.lucene.store.DataInput.readLong(DataInput.java:126)
位于org.apache.lucene.index.SegmentInfo.(SegmentInfo.java:202)
位于org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:286)
在org.apache.lucene.index.SegmentInfos$1.doBody上(SegmentInfos.java:363)
位于org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:754)
位于org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:593)
位于org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:359)
位于org.apache.lucene.index.CheckIndex.CheckIndex(CheckIndex.java:327)
位于org.apache.lucene.index.CheckIndex.main(CheckIndex.java:1007)

如何修复我的lucene索引?

看起来主目录文件已损坏。这可能意味着在执行提交时发生了断电

如果是这种情况,这意味着目录中可能存在较旧的段文件,并且引用的段仍然存在且有效。如果存在此类文件,请尝试删除损坏的
段\u ls0l
文件,并查看:

  • Lucene是否打开了索引
  • 您丢失了哪些数据
否则,在Lucene用户邮件列表中会有一些线程讨论重新生成段文件


在进行任何修改之前,请确保备份您的目录。

我解决了损坏的lucene索引,这是jpountz先生的答案

这是我们日志中的错误:

> 2020-11-11 12:52:06,119 (BasicLuceneIndexer.java:87) INFO com.softslate.commerce.businessobjects.product.BasicLuceneIndexer - Reindexing products. > 2020-11-11 12:52:06,119 (BasicLuceneIndexer.java:59) INFO com.softslate.commerce.businessobjects.product.BasicLuceneIndexer - Writing new index to: /app/etalaze_staging/apache-tomcat-8.0.17/webapps/jatis.etalaze.community/WEB-INF/lucene/new > 2020-11-11 12:52:06,171 (BaseRequestProcessor.java:605) WARN com.softslate.commerce.customer.core.BaseRequestProcessor - Exception follows: > org.apache.lucene.index.CorruptIndexException: checksum mismatch in segments file > at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:248) > at org.apache.lucene.index.IndexFileDeleter.(IndexFileDeleter.java:175) > at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1109) > at org.apache.lucene.index.IndexWriter.(IndexWriter.java:626) > at com.softslate.commerce.businessobjects.product.BasicLuceneIndexer.getIndexWriter(BasicLuceneIndexer.java:62) > at com.softslate.commerce.businessobjects.product.BasicLuceneIndexer.reindex(BasicLuceneIndexer.java:88) > at com.softslate.commerce.administrator.product.LuceneAddAllAction.execute(LuceneAddAllAction.java:44) > at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) > at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:644) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at com.softslate.commerce.administrator.core.AdministratorFilter.doFilter(AdministratorFilter.java:44) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at com.softslate.commerce.customer.core.SEOFilter.doFilter(SEOFilter.java:92) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at com.softslate.commerce.customer.core.HibernateFilter.doFilter(HibernateFilter.java:75) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) > at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) > at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) > at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086) > at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659) > at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Thread.java:745) >2020-11-11 12:52:06119(BasicLuceneIndexer.java:87)INFO com.softslate.commerce.businessobjects.product.BasicLuceneIndexer-重新编制产品索引。 >2020-11-11 12:52:06119(BasicLuceneIndexer.java:59)INFO com.softslate.commerce.businessobjects.product.BasicLuceneIndexer-将新索引写入:/app/etalaze_staging/apache-tomcat-8.0.17/webapps/jatis.etalaze.community/WEB-INF/lucene/new >2020-11-11 12:52:06171(BaseRequestProcessor.java:605)警告com.softslate.commerce.customer.core.BaseRequestProcessor-异常如下: >org.apache.lucene.index.corruptindexception:段文件中的校验和不匹配 >位于org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:248) >位于org.apache.lucene.index.IndexFileDeleter.(IndexFileDeleter.java:175) >位于org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1109) >位于org.apache.lucene.index.IndexWriter(IndexWriter.java:626) >在com.softslate.commerce.businessobjects.product.BasicLuceneIndexer.getIndexWriter(BasicLuceneIndexer.java:62)上 >位于com.softslate.commerce.businessobjects.product.BasicLuceneIndexer.reindex(BasicLuceneIndexer.java:88) >在com.softslate.commerce.administrator.product.LuceneAddAllAction.execute(LuceneAddAllAction.java:44) >位于org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) >位于org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) >位于org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) >位于org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) >位于javax.servlet.http.HttpServlet.service(HttpServlet.java:644) >位于javax.servlet.http.HttpServlet.service(HttpServlet.java:725) >位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) >位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) >位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) >位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >位于com.softslate.commerce.administrator.core.AdministratorFilter.doFilter(AdministratorFilter.java:44) >位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) >位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >位于com.softslate.commerce.customer.core.SEOFilter.doFilter(SEOFilter.java:92) >位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) >位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >位于com.softslate.commerce.customer.core.HibernateFilter.doFilter(HibernateFilter.java:75) >位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) >位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) >位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) >位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) >位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) >位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) >位于org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) >位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) >在org.apache.catalina上。