首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

分布式搜寻elasticsearch-索引修复

2012-12-28 
分布式搜索elasticsearch------索引修复在使用基于lucene的各类搜索引擎(如:elasticsearch、solr)时,有可能

分布式搜索elasticsearch------索引修复
在使用基于lucene的各类搜索引擎(如:elasticsearch、solr)时,有可能出现类似如下的错误:Caused by: java.io.EOFException: read past EOF: NIOFSIndexInput(path="/usr/local/sas/escluster/data/cluster/nodes/0/indices/index/5/index/_59ct.fdt")
这是由lucene的索引损坏了导致的,引起的原因有很多种,比如:复制不完整,硬盘损坏等。
由于elasticsearch也是基于lucene的,所以lucene的一些小工具elasticsearch也可以用到,比如luke之类的。lucene里面也有很多比较好用的工具,比如下面要介绍的CheckIndex。它在lucene-core jar包的org.apache.lucene.index目录下。它的功能是检查索引的的健康情况和修复索引。如果检查出某些segments有错误,可以通过-fix参数执行修复操作,修复的过程就是创建一个新的segments,把所有引用错误segments的索引数据删除。
使用方法,先定位到es的lib目录下

java -cp lucene-core-3.6.1.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /usr/local/sas/escluster/data/cluster/nodes/0/indices/index/5/index/ -fix
执行完后会在原来检查完毕的信息后面会出现以下信息。NOTE: will write new segments file in 5 seconds; this will remove 4708135 docs from the index. THIS IS YOUR LAST CHANCE TO CTRL+C!  5...  4...  3...  2...  1...Writing...OKWrote new segments file "segments_2ch"
表示修复完成,移除了4708135个损坏文档。
损坏了4708135个文档,是挺多的了,对于这种损坏文档数太多的情况,一就是直接从之前备份的数据中恢复(如果有的话),还有就是读取索引,记录损坏文档的id,进行修复后重新索引。
本文地址:http://blog.csdn.net/laigood12345/article/details/8296678

热点排行