2017-02-21 6 views
0

Anscheinend hat entweder Solr oder sein gebündeltes Jetty irgendeine Art von Anfrage Timeout. Wenn ich eine Abfrage ausfühle, die etwas dauert, gibt Solr beim ersten Mal immer den Fehler "Socket auflegen" zurück. Wenn ich die gleiche Abfrage das nächste Mal erneut ausstelle, würden die korrekten Ergebnisse schnell zurückkehren. Für das Leben von mir kann ich nicht herausfinden, wo ich diese Auszeit kontrollieren soll. Die Angabe von "timeAllowed" als Teil der Abfrage hilft nicht. Ich benutze Solr v6.3.0. Jeder Zeiger wird geschätzt.Solr setzt Verbindung für Abfrage zurück

Antwort

0

Ich gehe davon aus, dass sich Ihr Client und Ihr Solr auf verschiedenen Rechnern befinden.

Wenn ja, würde ich schauen tatsächlich, ob Sie Firewall zwischen dem Client und Ihrem Solr zuerst. Sie haben die Timeouts und wenn kein Verkehr über ihnen stattfindet, schneiden Sie die Verbindung in der Mitte.

Sie können dies mit Tools wie Wireshark überprüfen oder durch Ihre Frage mit Curl von der gleichen Maschine wie Solr Ausgabe.

+0

Danke, aber das ist nicht der Fall. Beide Server werden lokal auf demselben Computer ausgeführt. Das gleiche Problem tritt bei derselben Abfrage von der Solr-Verwaltungsseite auf. Die Abfrage erneut ausgeben, nachdem sie fehlgeschlagen ist, wird schnell mit den richtigen Ergebnissen zurückkommen. –

+0

Dann sind vielleicht Ihre Dokumente (gespeicherte Felder) so groß, dass ihre Erholung von der Festplatte zu lange dauert. Die Abfrage wird nach dem Socket-Zeitlimit und dem nächsten Mal fortgesetzt, wenn Sie ein Dokument oder einen Abfrage-Cache treffen. –

+0

Ich glaube, das ist der Fall. Die Abfrage führt mehrere Joins durch, daher dauert es etwas Zeit, wahrscheinlich etwa 10 Sekunden. Meine Frage ist jedoch - kann ich das Socket-Timeout-Limit auf der Solr/Jetty-Seite durch einige Konfigurationseinstellungen steuern? –