Как сделать Solr Dataimport (то есть из RDBMS), используя Java API?

Я новичок в Solr, на самом деле я попытался вручную выполнить индексацию таблиц базы данных в Solr, т. Е. Создал новый data-config.xml и запустил полный импорт из веб-интерфейса Solr.

Но теперь мне нужно сделать то же самое в Java. Поэтому мне нужно знать следующие вещи, используя Java:

Как установить источник данных Solr в Java APIКак установить сущность и запросКак запустить полный импорт

На самом деле, для импорта данных мы пишем файл конфигурации, как показано ниже

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource" 
            driver="com.mysql.jdbc.Driver"                url="jdbc:mysql://localhost:3306/test_db" 
            user="root" 
            password="cloudera"/>
<document>
  <entity name="emp"  
    query="select id,name from emp">
     <field column="id" name="id"/>
     <field column="name" name="name"/>       
  </entity>
</document>
</dataConfig>

и эту информацию о файле конфигурации мы предоставим в solrconfig.xml, как показано ниже

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

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

 ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("Datasource","JdbcDataSource") 
    params.set("driver","com.mysql.jdbc.Driver")
    params.set("url","jdbc:mysql://localhost:3306/test_db")
    params.set("user","cloudera")
    params.set("password","cloudera")
    params.set("query","select * from emp"),etc.

Это третий раз, когда я публикую этот вопрос, но никто не дает мне точного решения или просто скажите мне, возможно ли это или нет?

Ответы на вопрос(1)

Ваш ответ на вопрос