2012-07-18 12 views
12

próbuję przeładować rdzeń Solr (wersja 3.6.0) za pomocą następującego zdania:Odśwież Solr rdzeń z curl

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

Kiedy go wykonać, mam następującą odpowiedź:

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

Otrzymuję podobną odpowiedź po umieszczeniu takiego adresu URL w przeglądarce (różnica jest wartością QTime).

Mój problem polega na tym, że jeśli zadzwonię pod adres URL z przeglądarki, widzę w dzienniku informacje o ponownym załadowaniu, ale jeśli zadzwonię z adresu z instrukcji CURL, nic nie widzę w moim dzienniku info (to znaczy, że nie został wykonany żaden proces ponownego ładowania).

Czy muszę zmienić niektóre dane konfiguracyjne? Wydaje się, że połączenie nie jest przybywających do serwera Solr ...

+0

Twój curl prośba wydaje się ok, ja nie rozumiem, dlaczego nie mogłaby być różnica między żądanie przeglądarki i żądanie zwijania, nawet jeśli nie otrzymujesz żadnego błędu. – javanna

+0

@javanna, Nie widzę żadnej różnicy. Będę dalej próbować. – asuka

Odpowiedz

4

1.Try używać -A określić 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 może nie Exec js skrypty

Upewnij się więc, że nie jest to spowodowane skryptami js.

Możesz użyć Narzędzi dla programistów Chrome lub Firebug + Firefox, aby sprawdzić proces komunikacji http.

3. Użyj wireshark lub sth, aby sprawdzić, czy "połączenie przychodzi na serwer Solr", czy nie.

Mam nadzieję, że to pomaga.

+0

Nie ma różnicy podczas dodawania - agent, który mogłem zobaczyć. –

13

Spróbuj dołączyć URL w poleceniu z cudzysłowami następująco:

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

Nadzieja to pomaga