Проблема импорта данных (статус HTTP 404) с использованием solr и tomcat6

Список версий

  • solr 4.2.0
  • убунту 12.10
  • кот 6
  • sql 5.5.29

Я успешно настроил solr на своем сервере и могу получить доступ к странице администратора solr по этой ссылке

http://localhost:8080/solr

проблема в импорте данных, я вижу ошибку HTTP-статуса 404 при попытке импорта данных ...

описание: Запрошенный ресурс (/ solr / dataimport) недоступен.

 http://localhost:8080/solr/dataimport

вот моя структура каталогов

корень @ веб: ~ / solr-4.2.0 / пример / solr / collection1 / conf # ls

admin-extra.html mapping-FoldToASCII.txt
stopwords.txt admin-extra.menu-bottom.html mapping-ISOLatin1Accent.txt synonyms.txt admin-extra.menu-top.html
protwords.txt update- script.js currency.xml
schema.xml velocity data-config.xml
scripts.conf xslt elevate.xml
solrconfig.xml lang spellings.txt

корень @ веб: ~ / solr-4.2.0 / пример / lib # ls

причал-продолжение-8.1.8.v20121106.jar причал-сервер-8.1.8.v20121106.jar причал-развертывание-8.1.8.v20121106.jar
причал-сервлет-8.1.8.v20121106.jar причал-http -8.1.8.v20121106.jar
причал-util-8.1.8.v20121106.jar причал-io-8.1.8.v20121106.jar
причал-webapp-8.1.8.v20121106.jar причал-jmx -8.1.8.v20121106.jar
причал-xml-8.1.8.v20121106.jar причал-безопасность-8.1.8.v20121106.jar
servlet-api-3.0.jar

root @ web: ~ / solr-4.2.0 / dist # ls -l total 20716 -rw-r - r-- 1 root root 17359734 7 марта 06:32 solr-4.2.0.war -rw-r-- r-- 1 корневой корень 16714 7 марта 06:31 solr-analysis-extras-4.2.0.jar -rw-r - r-- 1 корневой корень 29896 7 марта 06:32 solr-cell-4.2.0.jar -rw-r - r-- 1 корневой корень 50435 7 марта 06:31 solr-clustering-4.2.0.jar -rw-r - r-- 1 корневой корень 2106321 7 марта 06:32 solr-core-4.2 .0.jar -rw-r - r-- 1 root root 217076 7 марта 06:31 solr-dataimporthandler-4.2.0.jar -rw-r - r-- 1 root root 31134 7 марта 06:31 solr -dataimporthandler-extras-4.2.0.jar -rw-r - r-- 1 корневой корень 766460 7 марта 06:32 solr-langid-4.2.0.jar -rw-r - r-- 1 корневой корень 392357 7 марта 06:32 solr-solrj-4.2.0.jar -rw-r - r-- 1 root root 149825 7 марта 06:31 solr-test-framework-4.2.0.jar -rw-r - r - 1 корневой корень 38743 7 марта 06:32 solr-uima-4.2.0.jar -rw-r - r-- 1 корневой корень 20286 7 марта 06:32 solr-velocity-4.2.0.jar drwxr-xr -x 2 root root 4096 20 июня 17:59 solrj-lib drwxr-xr-x 4 root root 4096 20 июня, 17:59 test-framework

root @ web: ~ / solr-4.2.0 / contrib # ls -l всего 28 drwxr-xr-x 4 root root 4096 7 марта 06:33 analysis-extras drwxr-xr-x 3 root root 4096 20 июня 17:59 кластеризация drwxr-xr-x 3 root root 4096 20 июня 17:59 dataimporthandler drwxr-xr-x 3 root root 4096 20 июня 17:59 извлечение drwxr-xr-x 3 root root 4096 20 июня 17:59 langid drwxr-xr- x 4 root root 4096 7 марта 06:33 uima drwxr-xr-x 3 root root 4096 20 июня 17:59 скорость

root @ web: ~ / solr-4.2.0 / example / solr # ls -l всего 20

-rw-r - r-- 1 root root 2473 17 октября 2012 README.txt drwxr-xr-x 2 root root 4096 17 октября 2012 bin drwxr-xr-x 3 root root 4096 20 июня, 17:59 collection1 -rw- r - r-- 1 корень root 2222 25 июня 15:44 solr.xml -rw-r - r-- 1 корень root 501 17 октября 2012 zoo.cfg

В файле solarconfig.xml, расположенном в /solr-4.2.0/example/solr/collection1/conf, добавлен путь к библиотеке dataimport.

<lib dir="../../../../../contrib/dataimporthandler/lib" regex=".*\.jar" />
  <lib dir="../../../../contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="../../../../dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="../../../../contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="../../../../dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="../../../../contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="../../../../dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="../../../../contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="../../../../dist/" regex="solr-velocity-\d.*\.jar" />
<lib dir="../../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />

Я попытался изменить путь к разным каталогам, но все тот же ответ.

в том же файле solarconfig.xml определено это

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
      <lst name="datasource">
         <str name="driver">com.mysql.jdbc.Driver</str>
         <str name="url">jdbc:mysql://localhost:3306/web</str>
         <str name="user">username</str>
         <str name="password">password</str>
      </lst>
    </lst>
  </requestHandler>

добавил мои собственные имена полей в файл schema.xml под другими именами полей ...

<field name="solr_field1" type="long" indexed="true" stored="true" required="true" multiValued="false" />
        <field name="solr_field2" type="long" indexed="true" stored="true" required="true" multiValued="false" />

 <field name="solr_field3" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field4" type="string" indexed="true" stored="true" required="true" multiValued="false" />

<field name="solr_field5" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field6" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field7" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field8" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field9" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field10" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field11" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="solr_field12" type="string" indexed="true" stored="true" required="true" multiValued="false" />

и это послесловие и эти поля ...

<copyField source="contact_name" dest="text"/>
<copyField source="contact_email" dest="text"/>
<copyField source="business_name" dest="text"/>
<copyField source="city" dest="text"/>
<copyField source="state" dest="text"/>
<copyField source="zip_code" dest="text"/>
<copyField source="phone" dest="text"/>
<copyField source="website" dest="text"/>
<copyField source="address" dest="text"/>
<copyField source="major_division" dest="text"/>

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

<dataConfig>
 <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver url="jdbc:mysql://localhost:3306/web" user="username" password="password"/>
 <document>
     <entity name="id " query="select * from business">
        <field column="id" name="solr_field1"/>
        <field column="metro_id" name="solr_field2"/>
        <field column="contact_name" name="solr_field3"/>
        <field column="contact_email" name="solr_field4"/>
        <field column="business_name" name="solr_field5"/>
        <field column="city" name="solr_field6"/>
        <field column="state" name="solr_field7"/>
        <field column="zip_code" name="solr_field8"/>
        <field column="phone" name="solr_field9"/>
        <field column="website" name="solr_field10"/>
        <field column="address" name="solr_field11"/>
        <field column="major_division" name="solr_field12"/>
     </entity>
 </document>
</dataConfig>

добавлен sharedLib = "../ lib" в файл solr.xml

<solr persistent="true" sharedLib="../lib">
  <cores adminPath="/admin/cores" defaultCoreName="collection1" host="${host:}" hostPort="${jetty.port:}" hostContext="${hostContext:}" zkClientTimeout="${zkClientTimeout:15000}">
    <core name="collection1" instanceDir="collection1" />
  </cores>
</solr>

любая помощь относительно того, как я могу заставить solr распознавать dataimport, будет очень признательна, спасибо ...


person Mubarak    schedule 26.06.2013    source источник
comment
Вы используете причал или Tomcat? разве порт не должен быть 8983 ??   -  person Jayendra    schedule 26.06.2013
comment
мы используем Tomcat. Как проверить правильный порт?   -  person Ayaz Alavi    schedule 26.06.2013


Ответы (1)


У меня такая же ошибка. Возможное решение

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

<lib dir="../../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />

убедитесь, что ваши файлы apache-solr-dataimporthandler-4.0.jar и apache-solr-dataimporthandler-extras-4.0.jar находятся в папке dist и находятся по правильному пути.

не забудьте перезапустить сервер tomcat.

Для получения более подробной информации перейдите по следующей ссылке с вопросом.

DIH (обработчик импорта данных) для файлов xml является не работает в Solr4

Другое дело, что вы используете Tomcat, поэтому номер вашего порта - 8080, а не 8983.

person Anand Khatri    schedule 27.06.2013