GolangのElasticSearchのラッパーであるgoライブラリ(https://github.com/OwnLocal/goes)を使用しています。 ElasticSearchクエリでGolang:Goesと呼ばれるElasticSearchライブラリを使用すると、どのようにしてboolの実行可能コードを記述できますか?
、我々は次のように実行することができます。
{
"query": {
"match": {
"user_id_1": "438018"
}
}
}
、それが動作します。行く使っgolangについては
、あなたにのようにそれを実行することができます:ここでは
var query = map[string]interface{}{
"query": map[string]interface{}{
"match": map[string]interface{}{
"user_id_1": "438018",
},
},
}
は私の質問で、あなたは上記のコードでelasticsearch
{
"query": {
"bool": {
"should": [
{
"match": {
"year": "2016"
}
},
{
"match": {
"frequency": "7"
}
}
]
}
}
}
でこのクエリを使用することができ、それがありますここで文書に書かれているbool should節(https://www.elastic.co/guide/en/elasticsearch/reference/current/_executing_searches.html)
私はquery2をelastic1と同じ方法で検索するようにしました。
var query2 = map[string]interface{}{
"query": map[string]interface{}{
"bool": map[string]interface{}{
"should": map[string]interface{}{
"match": map[string]interface{}{
"year": "2016",
},
"match": map[string]interface{}{
"frequency": "7",
},
},
},
},
}
エラー:私はgolang上のインターフェイスを持つので、慣れていないよ
リテラルマップ内の重複したキー "一致"。
私はいくつか考えていることを願っています。ありがとう。
p.s.
ありがとうTranvu Xuannhat :)それは多くの助けになりました!
var query2 = map[string]interface{}{
"query": map[string]interface{}{
"bool": map[string]interface{}{
"should": []map[string]interface{}{
map[string]interface{}{
"match": map[string]interface{}{
"year": "2016",
},
},
map[string]interface{}{
"match": map[string]interface{}{
"frequency": "7",
},
},
},
},
},
}
これは私が最後にしたものです。