Ich habe Elasticsearch (Version 5.5) in Gitlab integriert und versuche es zu benutzen. Dies ist der Befehl, den ich von einem externen Windows-Client sende:
curl -XGET gitlab.server:9200/ -H 'Content-Type: application/json' -d '{"query": {"simple_query_string" : {"fields" : ["content"], "query" : "foo bar -baz"}}}'
aber es geht nicht. Auf dem Client erhalte ich folgende Fehlermeldungen:
{"error": "Content-Type-Header [application/x-www-form-urlencoded] wird nicht unterstützt", "status": 406}
curl: (6) Host: Text konnte nicht aufgelöst werden
Locken: (3) Unübertroffene Klammer in Spalte 1
curl: (3) Ungültige URL, Doppelpunkt ist erstes Zeichen
Locken: (3) Unübertroffene Klammer in Spalte 1
curl: (3) Ungültige URL, Doppelpunkt ist erstes Zeichen
Curl: (3) [Globbing] Bad Range in Spalte 2
curl: (6) Host: Abfrage konnte nicht aufgelöst werden
curl: (3) Ungültige URL, Doppelpunkt ist erstes Zeichen
curl: (3) [globbing] unübertroffene enge Klammer/Klammer in Spalte 13
Auf dem Server in /var/log/elasticsearch/elasticsearch.log werden keine Protokollmeldungen angezeigt.
Wenn ich jedoch denselben exakten Befehl wie oben auf dem Linux-Server ausführe, erhalte ich eine fehlerfreie Antwort:
{
"name" : "name",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "uuid",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
Ich habe versucht, http.content_type.required: true
an die elasticsearch.yml, aber das Problem war das gleiche. Also, was mache ich hier falsch? Warum erhalte ich vom Windows-Client einen "Content-Type-Header nicht unterstützt"? Wie kann ich das lösen?
Nach dem Ändern des "zu" wie folgt:
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d "{"query": {"simple_query_string" : {"fields" : ["content"], "query" : "foo bar -baz"}}}"
Ich erhalte diese Antwort:
{
"name" : "name",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "uuid",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
curl: (6) Could not resolve Host: bar
Nach dem Ändern der Anführungszeichen von '
bis "
, entkomme den Anführungszeichen "
verwendet in den Parametern wie folgt:
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d "{\"query\": {\"simple_query_string\" : {\"fields\" : [\"content\"], \"query\" : \"foo bar -baz\"}}}"
Ein alternativ ist, den json in eine Datei zu setzen und den @
Präfix für die Parameter.
json.txt
{
"query": {
"simple_query_string" : {
"fields" : ["content"],
"query" : "foo bar -baz"
}
}
}
und führen Sie die Locke wie folgt aus:
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d @json.txt