Миграция файлов индекса Solr 1.4 в 4.7

У меня было много проблем при создании новой коллекции в Solr 4.7 для старого индекса 1.4. Наконец, я застрял со следующей проблемой:

Ошибка СОЗДАНИЯ SolrCore 'newsarchive4': невозможно создать ядро: newsarchive4 Причина: версия формата не поддерживается (ресурс: MMapIndexInput(путь ="E:\ архив новостей \data\newsarchive\index_4p.fdx")): 1 (необходимо быть между 2 и 3). Эта версия Lucene поддерживает только индексы, созданные в версии 3.0 и новее.

Как я могу оптимизировать или обновить индексные файлы для совместимости с Solr 4.7?

У меня нет никаких XML-файлов документов, это просто файлы в dataDir.

РЕДАКТИРОВАТЬ Я пробовал решение в комментарии femtoRgon, но он возвращает следующую ошибку:

E:\solr-new\example\solr-webapp\webapp\WEB-INF\lib>java -cp lucene-core-4.7.2.jar org.apache.lucene.ind
ex.IndexUpgrader -delete-prior-commits -verbose E:\news-archive\data\newsarchive\index
IW 0 [Fri Aug 22 19:59:03 CEST 2014; main]: init: hit exception on init; releasing write lock
Exception in thread "main" org.apache.lucene.index.IndexFormatTooOldException: Format version is not su
pported (resource: MMapIndexInput(path="E:\news-archive\data\newsarchive\index\_4p.fdx")): 1 (needs to
be between 2 and 3). This version of Lucene only supports indexes created with release 3.0 and later.
        at org.apache.lucene.codecs.lucene3x.Lucene3xStoredFieldsReader.checkCodeVersion(Lucene3xStored
FieldsReader.java:120)
        at org.apache.lucene.codecs.lucene3x.Lucene3xSegmentInfoReader.readLegacyInfos(Lucene3xSegmentI
nfoReader.java:74)
        at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:369)
        at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:404)
        at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:843)
        at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:694)
        at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:400)
        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:746)
        at org.apache.lucene.index.IndexUpgrader.upgrade(IndexUpgrader.java:161)
        at org.apache.lucene.index.IndexUpgrader.main(IndexUpgrader.java:74)

1 ответ

Решение

Lucene 4.X больше не поддерживает чтение 1.X. Я полагаю, что для того, чтобы обновить его, вам нужно сделать его двухэтапным: сначала загрузите Lucene 3.x и используйте его для обновления (используя IndexUpgrader).

Получив индекс в формате Lucene 3, вы сможете прочитать и обновить его до версии 4.7.

Другие вопросы по тегам