Wie wird Solr Dataimport (d. H. Von RDBMS) mit der Java-API ausgeführt?
Ich bin neu in Solr. Eigentlich habe ich versucht, die Datenbanktabellen manuell in Solr zu indizieren, d. H. Eine neue data-config.xml zu erstellen und den vollständigen Import von der Solr-Weboberfläche auszuführen.
Aber jetzt muss ich dasselbe in Java machen. Ich muss also die folgenden Dinge mit Java wissen:
Wie setze ich die Solr-Datenquelle in der Java-API?So legen Sie die Entität und die Abfrage festWie wird der vollständige Import ausgeführt?Zum Datenimport schreiben wir eine Konfigurationsdatei wie unten
<?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>
und diese Konfigurationsdatei-Informationen werden wir in der Datei solrconfig.xml wie folgt bereitstellen:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
Aber meine Anforderung ist, dass ich keine XML-Datei wie oben konfigurieren möchte, sondern nur alles von Java aus tun möchte. Daher muss ich alle Konfigurationen, die ich in XML oben angegeben habe, von Java-Code selbst festlegen, d. H so etwas wie unten
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.
Dies ist das dritte Mal, dass ich diese Frage stelle, aber niemand gibt mir eine genaue Lösung oder sagt mir einfach, ist das möglich oder nicht?