Ich versuche, eine Verbindung zu einer Instanz von Solr herzustellen, die ich auf einem EC2 Ubuntu AMI ausgeführt habe. Ich habe die Ports 7574, 8982 und 9983 für solr geöffnet. Ich kann die Konsole gut sehen. Ich verwende Solrj, um eine Verbindung zu meiner Instanz herzustellen und versuche, ein Solr-Dokument mit einem Feld zu schreiben.Solrj kann keine Verbindung zu AWS EC2-Box mit Solr
CloudSolrClient solr = new CloudSolrClient.Builder().withZkHost(external-ip:9983).build();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("test", "test");
solr.add("collection", doc);
solr.commit();
Von der Solr Admin-Konsole kann ich die leere Sammlung sehen. Nach 5 Wiederholungen bekomme ich diesen Fehler.
org.apache.solr.client.solrj.SolrServerException: Keine Live-SolrServers Verfügung, um diese Anforderung zu behandeln: [http://internal-ip:8983/solr/collection, http://internal-ip:7574/solr/collection]
Verursacht durch: java.net.ConnectException: Connection timed out: connect
Ich bin verwirrt, warum die interne IP-Adresse in der Fehlermeldung angezeigt wird und warum sie im Allgemeinen keine Verbindung herstellen kann.
Ich begann Solr mit dem Befehl ./solr -e cloud -noprompt
Java 8
Vielen Dank für Ihren Vorschlag. Ich werde den HttpSolrClient ausprobieren, aber wenn ich im SolrCloud-Modus laufen wollte, was müsste ich einstellen? Ich habe eine andere Webseite gesehen, die das Hinzufügen von serverip1: 2181, serverip2: 2182, serverip3: 2183 zur solr.xml –
Kevin
Die SolrCloud-Konfiguration, die Sie aus der Ferne verbinden müssen, muss manuell durchgeführt werden Es ist keine leichte Sache. Um zu beginnen, schlage ich vor, einen Blick darauf zu werfen: https://github.com/freedev/solrcloud-zookeeper-docker – freedev