Solr ExtractingRequestHandler извлечение текста в формате pdf

У меня проблема с извлечением текста в формате PDF из Solr. Solr использует Apache Tika для извлечения текста из файла PDF, а tika использует для этого PDFBox. Когда я отправляю свой PDF-файл в Solr, он успешно извлекает текст, но текст полностью испорчен. Что-то такое

MonaPersNr.KSt.KUZKapaz.Sollstd.MonatJahrtsbericht

Но когда я извлекаю тот же файл PDF непосредственно с помощью PDFBox в командной строке с помощью следующей команды, я получаю хороший результат.

java -jar pdfbox-app-1.6.0.jar ExtractText -консольный тест.pdf

Я не знаю, какая версия Tika или лучше, какая версия PDFBox используется solr. Я даже не могу найти библиотеку для этого в файле solr war... Все библиотеки в каталоге lib следующие:

09.09.2011  09:06    <DIR>          .
09.09.2011  09:06    <DIR>          ..
09.09.2011  09:06         1.421.869 apache-solr-core-3.4.0.jar
07.09.2011  13:12            22.478 apache-solr-noggit-r1099557.jar
09.09.2011  09:06           281.626 apache-solr-solrj-3.4.0.jar
07.09.2011  13:12           188.671 commons-beanutils-1.7.0.jar
07.09.2011  13:12            58.160 commons-codec-1.4.jar
07.09.2011  13:12           575.389 commons-collections-3.2.1.jar
07.09.2011  13:12            27.361 commons-csv-1.0-SNAPSHOT-r966014.jar
07.09.2011  13:12            57.779 commons-fileupload-1.2.1.jar
07.09.2011  13:12           305.001 commons-httpclient-3.1.jar
07.09.2011  13:12           109.043 commons-io-1.4.jar
07.09.2011  13:12           257.923 commons-lang-2.4.jar
07.09.2011  13:12            28.804 geronimo-stax-api_1.0_spec-1.0.1.jar
07.09.2011  13:12           932.554 guava-r05.jar
07.09.2011  13:12            17.308 jcl-over-slf4j-1.6.1.jar
07.09.2011  13:12            12.359 log4j-over-slf4j-1.6.1.jar
09.09.2011  09:04           850.852 lucene-analyzers-3.4.0.jar
09.09.2011  09:02         1.398.580 lucene-core-3.4.0.jar
09.09.2011  09:04            61.997 lucene-grouping-3.4.0.jar
09.09.2011  09:04            83.615 lucene-highlighter-3.4.0.jar
09.09.2011  09:04            30.214 lucene-memory-3.4.0.jar
09.09.2011  09:04            69.797 lucene-misc-3.4.0.jar
09.09.2011  09:04            45.979 lucene-queries-3.4.0.jar
09.09.2011  09:04            57.912 lucene-spatial-3.4.0.jar
09.09.2011  09:04            62.164 lucene-spellchecker-3.4.0.jar
07.09.2011  13:12            25.496 slf4j-api-1.6.1.jar
07.09.2011  13:12             8.890 slf4j-jdk14-1.6.1.jar
07.09.2011  13:12           419.521 velocity-1.6.1.jar
07.09.2011  13:12           309.896 velocity-tools-2.0-beta3.jar
07.09.2011  13:12           520.969 wstx-asl-3.2.7.jar
              29 Datei(en)      8.242.207 Bytes
               2 Verzeichnis(se), 21.805.932.544 Bytes frei

Я был бы действительно очень рад, если кто-то знает решение для этого.


person itsme    schedule 07.11.2011    source источник


Ответы (1)


Solr содержит дополнительные jar-файлы для Tika и его зависимостей в отдельной папке, которые не упакованы как часть развертываемого Solr.

Для Solr 3.4 -

Если у вас есть ствол solr, банки можно увидеть в папке solr/contrib/extraction/lib

В subversion вы можете найти банки @ путь, который равен pdfbox-1.3.1.jar

магистраль для Solr имеет последний pdfbox-1.6.0.jar.

person Jayendra    schedule 08.11.2011
comment
хорошо, я заменил pdfbox, fontbox и jempbox lib новейшими файлами jar 1.6.0, и я получаю тот же результат. - person itsme; 08.11.2011
comment
Хорошо, когда я использую ночную сборку архива, извлечение текста работает довольно хорошо. Но я бы предпочел использовать стабильную сборку - person itsme; 08.11.2011
comment
Я заменил каталог dist и contrib содержимым ночной сборки. Теперь извлечение PDF работает хорошо. Надеюсь, все остальное тоже будет стабильно =) - person itsme; 08.11.2011
comment
Solr 3.4 не имеет последней версии PDF-файла. Apache Tika работает с указанными банками pdfbox, поэтому обновление банок может не работать как есть. Возможно нужно проверить транк, или дождаться 3.5 и проверить, были ли обновленные. - person Jayendra; 08.11.2011
comment
да .. если вы работаете над сборкой ствола, вы можете проверить стабильность. - person Jayendra; 08.11.2011
comment
Но почему-то команда java -jar pdfbox-app-1.6.0.jar ExtractText -console -sort test.pdf извлекает текст лучше, чем curl localhost:8983/apache-solr-3.4.0/update/ -F [email protected]. Есть ли способ установить эквивалентную опцию -sort в HTTP-запросе? - person itsme; 08.11.2011
comment
Хорошо, я нашел решение... В тике жестко закодировано, что текст не должен сортироваться. Это из соображений производительности. На мой взгляд это глупо, потому что важнее хорошее извлечение текста. Но ладно, не мой выбор. Итак, чтобы исправить это, вы должны загрузить исходный код apache tika и изменить в tika-parsers\src\main\java\org\apache\tika\parser\pdf\PDF2XHTML.java выражение setSortByPosition(false); установитьSortByPosition(true); и перестройте весь проект с помощью mvn clean install -Dmaven.test.failure.ignore=true и замените банку tika-parser в contrib lib solr - person itsme; 08.11.2011