2012-07-18 7 views
12

Ich versuche, den Solr Kern (Version 3.6.0) mit Hilfe des folgenden Satzes neu zu laden:Reload Solr Kern mit curl

curl http://localhost:8983/solr/admin/cores?action=RELOAD\&core=mycore 

Als ich es ausführen, bekomme ich die folgende Antwort:

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
    <lst name="responseHeader"> 
     <int name="status">0</int> 
     <int name="QTime">1316</int> 
    </lst> 
</response> 

Ich bekomme eine ähnliche Antwort, wenn ich solche URL in meinem Browser (der Unterschied ist der Wert von QTime).

Mein Problem ist, dass, wenn ich die URL aus dem Browser aufrufen kann ich in den Protokollinformationen sehen, dass das Neuladen ausgeführt wird, aber wenn ich es aus der CURL-Anweisung aufrufen, kann ich nichts in meinem Protokoll sehen info (das heißt, es wurde kein Nachladeprozess ausgeführt).

Muss ich einige Konfigurationsdaten ändern? Es scheint, wie der Ruf ist nicht auf den Solr-Server ankommt ...

+0

Ihre curl Anfrage scheint ok, ich sehe nicht, warum es einen Unterschied könnte zwischen die Browser-Anfrage und die Curl-Anfrage, auch weil Sie keinen Fehler bekommen. – javanna

+0

@javanna, Ich sehe auch keinen Unterschied. Ich werde es weiter versuchen. – asuka

Antwort

4

1.Try -A zu verwenden, um die User-Agent

curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" http://localhost:8983/solr/admin/cores?action=RELOAD\&core=mycore 

2.Curl kann nicht exec js Skripte

angeben

Also stellen Sie sicher, es ist nicht wegen der js-Skripte.

Sie können die http-Kommunikation mit den Entwicklertools von Chrome oder Firebug + Firefox überprüfen.

3. Verwenden Sie wireshark oder etw, um zu überprüfen, ob "der Anruf beim Solr-Server ankommt" oder nicht.

Ich hoffe, dass hilft.

+0

Kein Unterschied beim Hinzufügen -A-Agent, den ich sehen konnte. –

13

Versuchen Sie die URL in dem Befehl mit doppelten Anführungszeichen zu umschließen, wie folgt:

curl "http://localhost:8983/solr/admin/cores?action=RELOAD&core=mycore" 

hoffe, das hilft