Индексирование PDF с помощью Solr - PullRequest
15 голосов
/ 14 июля 2011

Может кто-нибудь указать мне на учебник.

Мой основной опыт работы с Solr - это индексирование CSV-файлов.Но я не могу найти какие-либо простые инструкции / учебные пособия, чтобы сказать мне, что мне нужно сделать, чтобы проиндексировать PDF-файлы.

Я видел это: http://wiki.apache.org/solr/ExtractingRequestHandler

Но это имеет для меня очень мало смысла.Нужно ли устанавливать Tika?

Я потерян - пожалуйста, помогите

Ответы [ 5 ]

17 голосов
/ 19 августа 2014

С solr-4.9 (последней версией на данный момент) извлечение данных из полноформатных документов, таких как pdfs, электронные таблицы (семейство xls, xlxs), презентаций (ppt, ppts), документации (doc, txt и т. Д.), Стало довольно простым. , Примеры примеров кода, представленные в загруженном архиве с здесь содержит базовый шаблонный шаблон solr для быстрого начала работы.

Необходимые изменения конфигурации:

  1. Измените solrConfig.xml на следующие строки:

    <lib dir="<path_to_extraction_libs>" regex=".*\.jar" /> <lib dir="<path_to_solr_cell_jar>" regex="solr-cell-\d.*\.jar" />

создайте обработчик запроса следующим образом:

<requestHandler name="/update/extract" startup="lazy" class="solr.extraction.ExtractingRequestHandler" > <lst name="defaults" /> </requestHandler>

2.Добавьте необходимые файлы из solrExample в ваш проект.

3. Определите схему в соответствии с вашими потребностями и выполните запрос типа:

curl "http://localhost:8983/solr/collection1/update/extract?literal.id=1&literal.filename=testDocToExtractFrom.txt&literal.created_at=2014-07-22+09:50:12.234&commit=true" -F "myfile=@testDocToExtractFrom.txt"

зайдите на портал GUI и запросите, чтобы увидеть проиндексированное содержимое.

Дайте мне знать, если у вас возникнут проблемы.

4 голосов
/ 15 июля 2011

Вы можете использовать dataImportHandler.DataImortHandle будет определен в файле solrconfig.xml, конфигурация DataImportHandler должна быть реализована в другом XML-файле конфигурации (data-config.xml)

Для индексирования PDF вы можете

1.) просмотрите каталог, чтобы найти все PDF-файлы, используя FileListEntityProcessor

2.) читайте PDF-файлы из файла "content / index" -XML, используя XPathEntityProcessor

Если у вас есть список связанных PDF-файлов, используйте TikaEntityProcessor, посмотрите на этот http://solr.pl/en/2011/04/04/indexing-files-like-doc-pdf-solr-and-tika-integration/ (пример с ppt) и этот Solr: обработчик импорта данных и ячейка solr

2 голосов
/ 04 августа 2011

Сложнее всего получить метаданные из PDF-файлов, используя такой инструмент, как Aperture , что упрощает это.Должно быть тонны этих инструментов

Aperture - это инфраструктура Java для извлечения и запроса полнотекстового содержимого и метаданных из файлов PDF

Apeture извлекала метаданные из PDF-файлови сохранил его в XML-файлах.

Я проанализировал xml-файлы с помощью lxml и отправил их в solr

0 голосов
/ 10 декабря 2016
public class SolrCellRequestDemo {
public static void main (String[] args) throws IOException, SolrServerException {
SolrClient client = new
HttpSolrClient.Builder("http://localhost:8983/solr/my_collection").build();
ContentStreamUpdateRequest req = new
ContentStreamUpdateRequest("/update/extract");
req.addFile(new File("my-file.pdf"));
req.setParam(ExtractingParams.EXTRACT_ONLY, "true");
NamedList<Object> result = client.request(req);
System.out.println("Result: " +enter code here result);
}

Это может помочь.

0 голосов
/ 02 июня 2014

Используйте Solr, ExtractingRequestHandler. Это использует Apache-Tika для анализа файла PDF. Я считаю, что это может извлечь метаданные и т. Д. Вы также можете пройти через свои собственные метаданные. Извлечение обработчика запросов

...