Я пытаюсь индексировать данные из базы данных в Solr, используя DIH.Простейшая индексация Solr DIH
Так что я изменил два конфигурационных файлов следующим образом:
solrconfig.xml:
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
данных config.xml:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="****"/>
<document>
<entity name="source_scellee" query="select * from source_scellee">
</entity>
</document>
</dataConfig>
source_scellee быть имя моей таблицы в моей тестовой базе данных. Он содержит много полей.
Очевидно, что я пытаюсь запустить ничего, кроме простого теста. При запуске http://localhost:8983/solr/dataimport?command=full-import&clean=false&commit=true я получаю следующее результат:
<str name="Full Dump Started">2012-01-27 12:27:01</str><str name="">Indexing completed. Added/Updated: 4 documents. Deleted 0 documents.</str><str name="Committed">2012-01-27 12:27:02</str>
<str name="**Total Documents Failed**">4</str>
Помимо без предупреждения, ни ошибки на логи сервера. 4 - это количество записей внутри таблицы «source_scellee». Но в нем говорится, что все документы терпят неудачу.
Если у меня есть запрос от http://localhost:8983/solr/admin/ никаких результатов не найдено! Как я могу это решить? (":" не показывается результатов)
Благодарим за помощь!
---- редактировать --- Я добавил эти строки в моей schema.xml:
<field name="ID" type="int" indexed="true" stored="true" />
<field name="reference_catalogue" type="string" indexed="true" stored="true"/>
<field name="reference_capsule" type="string" indexed="true" stored="true"/>
<field name="organisme_certificateur" type="string" indexed="true" stored="true" />
<field name="reference_certificat" type="string" indexed="true" stored="true" />
<field name="duree_d_utilisation" type="string" indexed="true" stored="true" />
<field name="activite_nominale" type="string" indexed="true" stored="true"/>
<field name="activite_minimale" type="string" indexed="true" stored="true"/>
<field name="activite_maximale" type="string" indexed="true" stored="true"/>
<field name="coffret" type="boolean" indexed="true" stored="true"/>
<field name="dispositif_medical" type="boolean" indexed="true" stored="true"/>
<field name="forme_speciale" type="boolean" indexed="true" stored="true" />
<field name="exemption_cpa" type="boolean" indexed="true" stored="true"/>
<field name="marquage_ce" type="boolean" indexed="true" stored="true"/>
<field name="element_cible" type="boolean" indexed="true" stored="true"/>
Однако результат все тот же: никаких результатов при запросе (я пытался перезапустить Solr, и повторное индексирование все также)
------ второй редактировать --- Я попытался динамический импорт Теперь мой данных config.xml выглядит следующим образом:
<document>
<entity name="source_scellee" query="select * from source_scellee">
<field column="ID" name="ID_i" />
<field column="reference_catalogue" name="reference_catalogue_s" />
<field column="reference_capsule" name="reference_capsule_s" />
<field column="organisme_certificateur" name="organisme_certificateur_s" />
<field column="reference_certificat" name="reference_certificat_s" />
<field column="duree_d_utilisation" name="duree_d_utilisation_s" />
<field column="activite_nominale" name="activite_nominale_s" />
<field column="activite_minimale" name="activite_minimale_s" />
<field column="activite_maximale" name="activite_maximale_s" />
<field column="coffret" name="coffret_b" />
<field column="dispositif_medical" name="dispositif_medical_b" />
<field column="forme_speciale" name="forme_speciale_b" />
<field column="exemption_cpa" name="exemption_cpa_b" />
<field column="marquage_ce" name="marquage_ce_b" />
<field column="element_cible" name="element_cible_b" />
</entity>
</document>
thx, проверьте мой вопрос редактирование. – zg2pro
похоже, что вы сопоставляете идентификатор столбца таблицы с полем ID_i Solr, но для ID_i нет идентификатора filed-идентификатора, только для ID. Если имена столбцов RDBMS и Solr-Filed-Names одинаковы, вам не нужно сопоставлять поля в файле-config.xml. Взгляните на мое редактирование. Кстати: уникальный идентификатор и: вам не нужно сохранять поля, если фокус использует полнотекстовый поиск. –
Итак, чтобы динамически назначать тип поля для моих полей, я должен прямо переименовать имена столбцов с помощью _i или _s в РСУБД? Идентификатор уникален. – zg2pro