Не удается получить какие-либо строки с помощью SOLR DataImportHandler из БД - PullRequest
4 голосов
/ 07 марта 2011

Проведите простую тестовую настройку базы данных для моей первой попытки индексирования данных БД с использованием SOLR DIH.К сожалению, каждый раз при полном импорте я получаю следующий результат:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">15</int>
</lst>
<lst name="initArgs">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</lst>
<str name="command">full-import</str>
<str name="status">idle</str>
<str name="importResponse"/>
<lst name="statusMessages">
<str name="Time Elapsed">0:0:2.187</str>
<str name="Total Requests made to DataSource">1</str>
<str name="Total Rows Fetched">0</str>
<str name="Total Documents Processed">0</str>
<str name="Total Documents Skipped">0</str>
<str name="Full Dump Started">2011-03-06 21:30:07</str>
<str name="">Indexing failed. Rolled back all changes.</str>
<str name="Rolledback">2011-03-06 21:30:07</str>
</lst>
<str name="WARNING">
This response format is experimental.  It is likely to change in the future.
</str>
</response>

для моего solrconfig.xml определен следующий запрос::

<dataConfig>
<dataSource type="JdbcDataSource" 
          driver="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:8889/Dev1" 
          user="root" 
          password="***"/>
<document>
<entity name="business_profile" 
        query="select business_id,business_name,address1,address2,city,state,zip from business_profile">
</entity>
</document>
</dataConfig>

определение поля schema.xml:

<field name="business_id" type="int" indexed="true" stored="true"/>
<field name="business_name" type="string" indexed="true" stored="true"/>
<field name="address1" type="string" indexed="true" stored="true"/>
<field name="address2" type="string" indexed="true" stored="true"/>
<field name="city" type="string" indexed="true" stored="true"/>
<field name="state" type="string" indexed="true" stored="true"/>
<field name="zip" type="string" indexed="true" stored="true"/>

Если общее количество запросов к источнику данных отображает «1», означает ли это, что драйвер JDBC настроен правильно, и это возможно MySQLразрешение вопроса в этот момент или не обязательно?

Я играл с консолью разработчика DIH, пытаясь получить что-то обратно, но это всегда 1 запрос и 0 строк, что заставляет меня думать, что это разрешения JDBC или mySQL.Я исключил имя БД, номер порта и пользователя / пароль, но, возможно, драйвер JDBC настроен неправильно ..?

Спасибо


Вот что я получаю из журнала Solr

0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:50:41 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 853 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:50:47 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 851 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:51:03 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 853 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:51:13 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 852 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:51:14 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 852 

Ответы [ 7 ]

1 голос
/ 07 марта 2011

Посмотрите журналы SOLR, он напечатает трассировку стека при неудачной индексации.

0 голосов
/ 14 октября 2017

У меня была похожая проблема.Если ваш schema.xml (или управляемая схема) содержит идентификатор или уникальный идентификатор, как показано ниже Пример: <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

Затем вам нужно выбрать этот файл в файле data-config.xml в качестве основного ключа или установить новыйвведите значение required = "true" или удалите эту часть.

0 голосов
/ 04 июня 2013

Это длинный путь, но на основании ваших журналов Solr кажется, что на вашем сервере включена ipv6.

Некоторые приложения по умолчанию не поддерживают ipv6, возможно, вы захотите проверить конфигурацию MySQL, чтобы убедиться, что она разрешает подключения через ipv6 через интерфейс обратной связи.

См. Руководство MySQL версии 5.5, например: http://dev.mysql.com/doc/refman/5.5/en/ipv6-local-connections.html

В частности, шаги 3 и 4 в приведенном выше руководстве могут использоваться для проверки подключения, например,

shell> mysql -h localhost -u root -pYourRootPassword

mysql> STATUS
0 голосов
/ 18 ноября 2011

data-config.xml, который вы публикуете здесь, в части URL url = "jdbc: mysql: // localhost: 8889 / Dev1"Пожалуйста, измените его на url = "jdbc: mysql: // localhost / Dev1", и пусть вы поместите драйвер jdbc в каталог lib.пожалуйста, проверьте драйвер jdbc, где он находится в каталоге lib или нет ...

0 голосов
/ 06 июня 2011

Вы подключаетесь к удаленной базе данных, используя ssh или tunnel?Мне кажется, что вы подключаетесь к удаленной базе данных.попробуйте подключиться к локальному серверу mysql, если он работал, у вас возникли проблемы с подключением по SSH.

0 голосов
/ 07 марта 2011

Вы, конечно, добавили поля business_id, business_name, address1, address2, city, state, zip в schema.xml?

Удалось ли найти какие-либо ошибки в журнале сервера?

Я не совсем уверен, нужно ли вам называть свой источник данных, если у вас есть только один, но это способ сообщить сущности, какой источник данных использовать:

<dataConfig>

    <dataSource 
        name="dev" 
        driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        encoding="UTF-8"
        url="jdbc:sqlserver://____:1433;databaseName=____"
        user="____" 
        password="____" 
        readOnly="true" 
        autoCommit="false" />


    <document>
        <entity 
            name="metadataObject" 
            dataSource="dev" 
            pk="ITEM_MOID" 
            transformer="RegexTransformer,DateFormatTransformer"        
            query="___"

            ...

    </document>
</dataConfig>
0 голосов
/ 07 марта 2011

Пожалуйста, запустите запрос из data-config.xml непосредственно в MySQL и проверьте, возвращены ли какие-либо строки.

Также, пожалуйста, проверьте журналы ошибок вашего сервера (catalina.out, если вы используете Tomcat) и опубликуйте все сообщения об ошибках, зарегистрированные там.

...