Импорт MySQL в Solr - PullRequest
       2

Импорт MySQL в Solr

0 голосов
/ 24 февраля 2012

Я хочу проиндексировать мою таблицу базы данных MySQL с помощью solr. Я вижу результат, полученный для запроса на моей http://localhost:8983/solr/admin/dataimport.jsp?handler=/dataimport странице, но я получаю эти ошибки на стороне сервера для каждой выбранной строки:

WARNING: Error creating document : SolrInputDocument[{eno=eno(1.0)={3}, ename=ename(1.0)={pravin}, sal=sal(1.0)={300}}]
org.apache.solr.common.SolrException: Document [null] missing required field: id

Это мой dataconfig.xml:

<dataConfig>
    <dataSource name="pravindb" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/pravindb" user="root" password="root" batchSize="-1" />
    <document>
        <entity name="ename" dataSource="pravindb" pk="eno" query="select* from emp">
            <field column="eno" name="eno"/> 
            <field column="ename" name="ename"/> <field column="sal" name="sal"/> 
        </entity>
     </document>
</dataConfig>

Это код, который я добавил в schema.xml:

<fields>
    <field name="eno" type="int" indexed="true" stored="true" required="true" />
    <field name="ename" type="text" indexed="true" stored="true" multiValued="true"/>
    <field name="sal" type="int" indexed="true" stored="true" multiValued="true"/>
</fields>
<uniqueKey>eno</uniqueKey>
<defaultSearchField>ename</defaultSearchField>

Это мой обработчик запросов в solrconfig.xml:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">d:\clg/Project/Workspace/TestSolr/solr/conf/my-data-config.xml</str>
    </lst>
</requestHandler> 

1 Ответ

1 голос
/ 24 февраля 2012

Ошибка говорит о том, что документ, который вы пытаетесь добавить через DataImportHandler, не содержит поля id, которое необходимо заполнить. Ваш запрос не возвращает столбец идентификатора, или вы неправильно отображаете его в конфигурации вашего обработчика импорта.

UPDATE
Из конфигурации, которую вы добавили, похоже, что ваше поле eno является uniqueKey, которое должно работать до тех пор, пока ваше select * всегда его возвращает. Проблема в том, что в вашей схеме есть больше обязательных полей, которые, я думаю, вам не нужны. В сообщении об ошибке указано, что поле id настроено должным образом: вам следует удалить его из схемы или сделать его необязательным, если оно требуется для других целей.

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