Ошибка при извлечении метаданных PDF с помощью Solr - PullRequest
1 голос
/ 01 августа 2011

Я использую Solr 3.3 и пытаюсь извлечь и проиндексировать метаданные из файлов PDF.Я использую DataImportHandler с TikaEntityProcessor для добавления документов.Вот поля, определенные в моем файле schema.xml:

<field name="title" type="text" indexed="true" stored="true" multiValued="false"/>
   <field name="description" type="text" indexed="true" stored="true" multiValued="false"/>
   <field name="date_published" type="string" indexed="false" stored="true" multiValued="false"/>
   <field name="link" type="string" indexed="true" stored="true" multiValued="false" required="false"/>
   <field name="imgName" type="string" indexed="false" stored="true" multiValued="false" required="false"/>
   <dynamicField name="attr_*" type="textgen" indexed="true" stored="true" multiValued="false"/>

Так что я полагаю, что метаданные должны быть проиндексированы и сохранены в полях с префиксом «attr_».

Вот как выглядит мой файл конфигурации данных.Он берет исходный путь к каталогу из базы данных, передает его в FileListEntityProcessor, который передает каждый из pdf-файлов, найденных в каталоге, в TikaEntityProcessor для извлечения и индексации содержимого.

<entity onError="skip" name="fileSourcePaths" rootEntity="false" dataSource="dbSource" fileName=".*pdf" query="select path from file_sources">
      <entity name="fileSource" processor="FileListEntityProcessor" transformer="ThumbnailTransformer" baseDir="${fileSourcePaths.path}" recursive="true" rootEntity="false">
        <field name="link" column="fileAbsolutePath" thumbnail="true"/>
        <field name="imgName" column="imgName"/>
        <entity rootEntity="true" onError="abort" name="file" processor="TikaEntityProcessor" url="${fileSource.fileAbsolutePath}" dataSource="fileSource" format="text">
          <field column="resourceName" name="title" meta="true"/>
          <field column="Creation-Date" name="date_published" meta="true"/>
          <field column="text" name="description"/>
        </entity>
      </entity>

Он прекрасно извлекает описание и дату создания, но не похоже, что он извлекает resourceName, и поэтому при запросе индекса нет поля заголовка для документов.Это странно, потому что Creation-date и resourceName являются метаданными.Кроме того, ни один из других возможных метаданных не был сохранен под полями attr_.Я сталкивался с некоторыми темами, в которых говорилось, что существуют известные проблемы с использованием Tika 0.8, поэтому я скачал Tika 0.9 и заменил его на 0.8.Я также скачал и заменил pdfbox, jempbox и fontbox с 1.3 на 1.4.

Я протестировал один из pdf отдельно, просто с помощью Tika, чтобы увидеть, какие метаданные хранятся в файле.Вот что я нашел:

Content-Length: 546459 
Content-Type: application/pdf 
Creation-Date: 2010-06-09T12:11:12Z 
Last-Modified: 2010-06-09T14:53:38Z 
created: Wed Jun 09 08:11:12 EDT 2010 
creator: XSL Formatter V4.3 MR9a (4,3,2009,1022) for Windows 
producer: Antenna House PDF Output Library 2.6.0 (Windows) 
resourceName: Argentina.pdf 
trapped: False 
xmpTPg:NPages: 2

Как видите, у него есть метаданные resourceName.Я снова попробовал индексировать, но получил тот же результат.Дата создания извлекает и индексирует просто отлично, но не resourceName.Также остальные атрибуты не индексируются в полях attr_.

Что происходит не так?

...