не удалось настроить Tika1.2 с помощью solr4

Я пытаюсь использовать TikaEntityProcessor для индексации содержимого файла .html. Как-то я не могу понять это правильно. Я проверил журнал ошибок и получил следующую ошибку.

SEVERE: Full Import failed:java.lang.RuntimeException:org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to load EntityProcessor implementation for entity:tika-test Processing Document # 1
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:273)
    at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:382)
    at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:448)
    at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:429)
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to load EntityProcessor implementation for entity:tika-test Processing Document # 1
    at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
    at org.apache.solr.handler.dataimport.DocBuilder.getEntityProcessorWrapper(DocBuilder.java:697)
    at org.apache.solr.handler.dataimport.DocBuilder.getEntityProcessorWrapper(DocBuilder.java:703)
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:215)
    ... 3 more
Caused by: java.lang.ClassNotFoundException: Unable to load TikaEntityProcessor or org.apache.solr.handler.dataimport.TikaEntityProcessor
    at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:899)
    at org.apache.solr.handler.dataimport.DocBuilder.getEntityProcessorWrapper(DocBuilder.java:694)
    ... 5 more
Caused by: org.apache.solr.common.SolrException: Error loading class 'TikaEntityProcessor'
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:436)
    at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:889)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: TikaEntityProcessor
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)

Мой файл data-config.xml выглядит следующим образом:

<dataConfig>
    <dataSource type="BinFileDataSource" />
    <document>
    <entity name="f" processor="FileListEntityProcessor" baseDir="path/to/basedir/" fileName=".*html" recursive="true" rootEntity="true" dataSource="null">
       <entity name="tika-test" processor="TikaEntityProcessor" url="path/tohtml/files/" format="text" onError="skip">
            <field column="product_id" name="product_id" meta="true"/>
            <field column="type" name="type" meta="true"/>
            <field column="title" name="title" meta="true"/>        
        </entity>
    </entity>
</document>
</dataConfig>

Я добавил следующий код в solrconfig.xml

<requestHandler name="/dataimport"  class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
  <str name="config">/path/to/data-config.xml</str>
</lst>

Я сохранил файл schema.xml по умолчанию и добавил в этот файл следующий код.

<field name="product_id" type="string" indexed="true" stored="true"/>
<field name="title" type="string" indexed="true" stored="true"/>
<field name="type" type="string" indexed="true" stored="true"/>

может ли кто-нибудь сказать мне, что мне здесь не хватает? или почему я получаю ошибки? и какое это решение.


person Anand Khatri    schedule 11.02.2013    source источник


Ответы (3)


Вы добавили директивы lib в solrconfig.xml, чтобы убедиться, что библиотеки tika загружены? Вам нужно (я думаю):

<lib dir="${user.dir}/../dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${user.dir}/../contrib/extraction/lib" regex=".*\.jar" />

Если вы используете Solr 4, а не Solr 4.1, вам может понадобиться сказать apache-solr-cell.... вместо просто solr-cell...

person Alexandre Rafalovitch    schedule 11.02.2013
comment
да, я добавил этот каталог lib в файл solrconfig.xml. похоже: <lib dir="../contrib/dataimporthandler/lib/" regex=".*\.jar" /> <lib dir="../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" /> <lib dir="../contrib/extraction/lib" regex=".*\.jar" /> <lib dir="../dist/" regex="apache-solr-cell-\d.*\.jar" /> - person Anand Khatri; 11.02.2013
comment
Вы уверены, что ваш .. основан на правильном местоположении? Вы начинаете это из каталога примеров solr с пользовательским solr.solr.home? Взгляните на инструменты системного мониторинга, чтобы увидеть, найдены ли и загружены ли эти файлы jar (ProcessMonitor в Windows, dtrace и производные в Unix/Mac) - person Alexandre Rafalovitch; 11.02.2013
comment
да я проверил это .. работает для меня. Да, я начал с примера каталога solr, но я изменил домашний каталог solr. Теперь это solr.home вместо solr.solr.home. - person Anand Khatri; 11.02.2013

TikaEntityProcessor доступен в dataimporthandler-extras jar.
для загрузки файла можно использовать шаблон apache-solr-dataimporthandler-.*\.jar.

person Jayendra    schedule 12.02.2013
comment
Я уже добавил эти два шаблона в свой файл solrconfig.xml. <lib dir="../contrib/dataimporthandler/lib/" regex=".*\.jar" /> <lib dir="../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" /> но проблема так и не решена. - person Anand Khatri; 12.02.2013
comment
Я настроил Tika и solr. Но у меня есть другая проблема, и для этого я опубликовал новый Вопрос не могли бы вы посмотреть это и дать мне предложение. - person Anand Khatri; 28.02.2013

Вам необходимо добавить jar-файлы (или пути) для apache-solr-dataimporthandler-4.0, apache-solr-dataimporthandler-extras-4.0 и apache-solr-cell-4.o в папку dist, а также соответствующие файлы в contrib. папка.

так решается моя проблема.

person Anand Khatri    schedule 12.02.2013