Como fazer Solr Dataimport (ou seja, de RDBMS) usando a API Java?

Eu sou novo no Solr, na verdade, tentei a indexação de tabela de banco de dados no Solr manualmente, ou seja, criando um novo data-config.xml e executando a importação completa do Solr webUI, fiz isso com êxito.

Mas agora eu preciso fazer a mesma coisa em Java. Então, eu preciso saber o seguinte usando Java:

Como definir a fonte de dados Solr na API JavaComo definir a entidade e a consultaComo executar a importação completa

Na verdade, para importação de dados, escrevemos um arquivo de configuração como abaixo

<?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>

e essas informações sobre o arquivo de configuração forneceremos em solrconfig.xml, como abaixo

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

Mas o meu requisito é que eu não quero configurar nenhum arquivo XML como acima, apenas quero fazer tudo apenas com Java, portanto, preciso definir todas as configurações que forneci acima do XML a partir do próprio código Java, ou seja, algo como abaixo

 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.

Esta é a terceira vez que estou postando esta pergunta, mas ninguém me fornece a solução exata ou apenas me diz, é possível ou não?