У нас есть следующая схема 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, по-видимому, делает желаемое отображение (переопределение сгенерированной конфигурации).
Кажется, это решило проблему.