Как мне индексировать PDF-файлы и искать по ключевым словам? - PullRequest
8 голосов
/ 26 июля 2011

У меня есть несколько PDF-файлов (всего несколько сотен).У них нет правильной структуры и нет определенных полей.Все, что у них есть, это много текста.

Что я пытаюсь сделать:

Индексируйте PDF-файлы и ищите некоторые ключевые слова по индексу.Я заинтересован в том, чтобы найти, есть ли это ключевое слово в документе PDF, и если это так, мне нужна строка, где находится ключевое слово.Если бы я искал «Google» в документе PDF с таким термином, мне бы хотелось, чтобы «Google - отличная поисковая система» - это строка в PDF.

Как я решил это сделать:

Либо используйте SOLR, либо Whoosh, но SOLR выглядит хорошо для встроенной поддержки PDF.Я предпочитаю кодировать на Python, а Sunburst - это обертка на SOLR, которая мне нравится.Образец / пример проекта SOLR содержит файл схемы сравнения цен.Теперь я не уверен, что смогу использовать SOLR для решения своей проблемы.

Что вы, ребята, предлагаете?Любой вклад приветствуется.

Ответы [ 3 ]

5 голосов
/ 26 июля 2011

Я думаю, что Solr соответствует вашим потребностям.

Функция «Подсветка» - это то, что вы ищете. Для этого вам нужно проиндексировать и сохранить документы в lucene index.

Функция выделения возвращает фрагмент, где отмечен искомый текст.

Посмотрите на это: http://wiki.apache.org/solr/HighlightingParameters

4 голосов
/ 12 мая 2013

Другое автономное / автономное решение:

  • https://github.com/WolfgangFahl/pdfindexer Он использует PDFBox и Apache Lucene и создает файл индекса HTML со ссылками на страницы в файле PDF для каждого найденного ключевого слова.
2 голосов
/ 26 июля 2011

Однажды я решил эту проблему, преобразовав PDF-файлы в текст с помощью утилит как pdftotext (я думаю, pdftohtml также будет работать), создав «кэш» некоторых типов. Затем, используя grep, я искал в кеше текстового файла ключевые слова.

Это немного отличается от предложенного вами решения, но я могу представить, что вы также можете вызвать это из Python.

...