Как восстановить поврежденный люценовый индекс? - PullRequest
12 голосов
/ 30 марта 2012

Мой сервер потерял питание и индекс 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)

Как мне отремонтировать мой люценовый индекс?

1 Ответ

8 голосов
/ 02 апреля 2012

Похоже, файл основного каталога, сегменты_N поврежден.Это, вероятно, означает, что потеря питания произошла во время выполнения коммита.

Если это так, это означает, что есть некоторый шанс, что в вашем каталоге присутствует более старый файл сегменты_N, и что указанные сегментывсе еще присутствует и действует.Если такой файл существует, попробуйте удалить поврежденный файл segments_ls0l и посмотреть:

  • , удастся ли Lucene открыть индекс,
  • какие данные вам не хватает.

В противном случае существует один поток, в котором один список рассылки пользователей Lucene говорит о восстановлении файла сегментов_N.

Обязательно сделайте резервную копиюВаш каталог перед выполнением каких-либо изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...