Индексирование PDF с помощью Solr
Может ли кто-нибудь указать мне на учебник.
Мой основной опыт работы с Solr - это индексирование CSV файлов. Но я не могу найти никаких простых инструкций/учебников, чтобы рассказать мне, что мне нужно сделать, чтобы индексировать PDF файлы.
Я видел это: http://wiki.apache.org/solr/ExtractingRequestHandler
Но для меня это очень мало смысла. Нужно ли устанавливать Tika?
Im lost - пожалуйста, помогите
Ответы
Ответ 1
Самая сложная часть этого - получение метаданных из PDF файлов, с помощью такого инструмента, как Aperture, это упрощает. Должны быть тонны этих инструментов
Aperture - это платформа Java для извлечения и запроса полнотекстового содержимого и метаданных из файлов PDF.
Apeture схватил метаданные из PDF файлов и сохранил их в xml файлах.
Я проанализировал xml файлы, используя lxml, и отправил их в solr
Ответ 2
С solr-4.9 (последняя версия на данный момент) извлечение данных из богатых документов, таких как pdf, электронные таблицы (xls, xlxs family), презентации (ppt, ppts), документация (doc, txt и т.д.) стала довольно простой,
Примеры примеров кода, приведенные в загруженном архиве из
здесь содержит базовый проект шаблона solr, который поможет вам быстро начать работу.
Необходимые изменения конфигурации следующие:
-
Измените 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 "[email protected]"
перейдите на портал GUI и запросите, чтобы увидеть индексированное содержимое.
Сообщите мне, если у вас возникнут какие-либо проблемы.
Ответ 3
Вы можете использовать dataImportHandler. DataImortHandle будет определен в файле solrconfig.xml, конфигурация DataImportHandler должна быть реализована в другом файле конфигурации XML (data-config.xml)
Для индексирования pdf вы можете
1.) сканировать каталог, чтобы найти все pdf, используя FileListEntityProcessor
2.), прочитав pdf файл из "содержимого/индекса" -XML файла, используя XPathEntityProcessor
Если у вас есть список связанных PDF файлов, используйте TikaEntityProcessor
посмотрите http://solr.pl/en/2011/04/04/indexing-files-like-doc-pdf-solr-and-tika-integration/ (пример с ppt) и этот Solr: обработчик импорта данных и solr ячейки
Ответ 4
Используйте Solr, ExtractingRequestHandler. Это использует Apache-Tika для анализа файла PDF. Я считаю, что он может вытащить метаданные и т.д. Вы также можете пройти через свои собственные метаданные.
Извлечение обработчика запросов
Ответ 5
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);
}
Это может помочь.