Elasticsearch(バージョン5.5)をGitlabに統合し、使用しようとしています。これは、外部のWindowsクライアントから送信するコマンドです。
curl -XGET gitlab.server:9200/ -H 'Content-Type: application/json' -d '{"query": {"simple_query_string" : {"fields" : ["content"], "query" : "foo bar -baz"}}}'
しかし、それは機能しません。クライアントでこれらのエラーが表示されます:
{「エラー」:「Content-Typeヘッダー[application/x-www-form-urlencoded]はサポートされていません」、「ステータス」:406}
カール:(6)ホストを解決できませんでした:テキスト
curl:(3)[globing]列1の一致しないブレース
カール:(3)不正なURL、コロンが最初の文字
curl:(3)[globing]列1の一致しないブレース
カール:(3)不正なURL、コロンが最初の文字
curl:(3)[globing]列2の範囲が間違っています
カール:(6)ホストを解決できませんでした:クエリ
カール:(3)不正なURL、コロンが最初の文字
カール:(3)[globing]列13の不一致の閉じ括弧/ブラケット
/var/log/elasticsearch/elasticsearch.logのサーバーでは、ログメッセージは表示されません。
ただし、Linuxサーバーから上記とまったく同じコマンドを実行すると、エラーなしで応答が返されます。
{
"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"
}
http.content_type.required: true
をelasticsearch.ymlに追加しようとしましたが、問題は同じでした。だから、私はここで間違っていますか? Windowsクライアントから「サポートされていないContent-Typeヘッダー」を取得するのはなぜですか?どうすれば解決できますか?
次のように「」を「」に変更した後:
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d "{"query": {"simple_query_string" : {"fields" : ["content"], "query" : "foo bar -baz"}}}"
私はこの応答を受け取ります:
{
"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
囲む引用符を'
から"
に変更した後、パラメーター内で使用される引用符"
を次のようにエスケープします。
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d "{\"query\": {\"simple_query_string\" : {\"fields\" : [\"content\"], \"query\" : \"foo bar -baz\"}}}"
alternative は、jsonをファイルに入れ、パラメーターに@
プレフィックスを使用することです。
json.txt
{
"query": {
"simple_query_string" : {
"fields" : ["content"],
"query" : "foo bar -baz"
}
}
}
以下のようにcurlを実行します。
curl -XGET gitlab.server:9200/ -H "Content-Type: application/json" -d @json.txt