Индексирование офисных форматов с помощью настраиваемой схемы типов полей - PullRequest
1 голос
/ 15 ноября 2011

У нас есть следующая схема Solr (3.4) для индексации html / текстовых документов:

 <fields>

   <field name="text" type="text" indexed="true"
          stored="true" required="false" multiValued="false"
          omitNorms="false"/>
   <field name="title" type="text" indexed="true"
          stored="true" required="false" multiValued="false"
          omitNorms="false"/>
   <field name="created" type="date" indexed="true"
          stored="true" required="true" multiValued="false"
          omitNorms="false"/>
   <field name="modified" type="date" indexed="true"
          stored="true" required="false" multiValued="false"
          omitNorms="false"/>
   <field name="filesize" type="integer" indexed="true"
          stored="true" required="false" multiValued="false"
          omitNorms="false"/>
   <field name="mimetype" type="string" indexed="true"
          stored="true" required="false" multiValued="false"
          omitNorms="false"/>
   <field name="id" type="string" indexed="true"
          stored="true" required="true" multiValued="false"
          omitNorms="false"/>
   <field name="tag" type="string" indexed="true"
          stored="true" required="false" multiValued="false"
          omitNorms="false"/>
   <field name="relpath" type="string" indexed="true"
          stored="true" required="false" multiValued="false"
          omitNorms="false"/>

   <dynamicField name="tika_*" type="ignored" />

 </fields>

Конфигурации создаются автоматически из шаблонов из рецепта solrinstance для zc.buildout.

Теперь нам нужно импортировать / индексировать файлы PDF / Office и т. Д. В Solr для полнотекстовой индексации.

Сгенерированный requestHandler для извлечения:

  <requestHandler name="/update/extract"
                  class="solr.extraction.ExtractingRequestHandler" >
    <lst name="defaults">
      <str name="fmap.text">tika_content</str>
      <str name="lowernames">false</str>
      <str name="uprefix">tika_</str>
    </lst>
  </requestHandler>

Но после загрузки файла PDF черезcurl Я не могу найти никаких признаков того, что это был индекс (без изменений в статистике документа и т. д.).

В чем тут хитрость?

[Обновить]

Я использую

curl "http://localhost:8983/solr/update/extract?literal.id=2&commit=true&fmap.content=text" -F" myfile=@1.pdf "

для загрузки файла PDF. Добавление fmap.content = text, по-видимому, делает желаемое отображение (переопределение сгенерированной конфигурации).

Кажется, это решило проблему.

1 Ответ

0 голосов
/ 15 ноября 2011

fmap - это, в основном, отображение полей для контента, сгенерированного tika.

Обработчик Tika извлекает содержимое загруженного документа и присваивает его имени поля content. <str name="fmap.content">text</str> отображает поле содержимого в текстовое поле, определенное в схеме. Поскольку в схеме определено поле text, это будет работать.

Однако, для <str name="fmap.text">tika_content</str> не определено поле tika_content, и я думаю, что text генерируется, поэтому не приведет ни к каким совпадениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...