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