gpt4 book ai didi

json - Elastigo 和 Go,使用带有变量的原始 json 字符串进行搜索

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:21 25 4
gpt4 key购买 nike

这个网站有一个 elasticsearch 查询的例子:

https://github.com/mattbaird/elastigo

例子是这样的:

使用原始 json 字符串进行搜索

searchJson := `{
"query" : {
"term" : { "user" : "kimchy" }
}
}`
out, err := core.SearchRequest(true, "twitter", "tweet", searchJson, "")
if len(out.Hits.Hits) == 1 {
fmt.Println(string(out.Hits.Hits[0].Source))
}

但是我需要这样的东西:

原始 json 字符串中的变量

term := "my search term"

searchJson := `{
"size" : "size",
"query" : {
"match" : {
"_all" : {
"query" : term,
"operator" : "and"
}
}
},
"sort" : [{
"name" : {
"order" : "asc",
"mode" : "avg"
}
}]
}`

我如何将一个变量 term 放入原始 json 字符串中?

是否可以将变量放入原始 json 字符串中?

最佳答案

您可以使用 templates填写该值:

term := "\"my search term\""

searchJSONTmpl := `{
"size" : "size",
"query" : {
"match" : {
"_all" : {
"query" : {{.Term}},
"operator" : "and"
}
}
},
"sort" : [{
"name" : {
"order" : "asc",
"mode" : "avg"
}
}]
}`

tmpl, err := template.New("blah").Parse(searchJSONTmpl)
if err != nil {
log.Fatal(err)
}

data := map[string]string{
"Term": term,
}

if err := tmpl.Execute(os.Stdout, data); err != nil {
log.Fatal(err)
}

如果要将新的 JSON 字符串存储到变量中,请使用 bytes.Buffer在执行模板时代替 os.Stdout

关于json - Elastigo 和 Go,使用带有变量的原始 json 字符串进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36021671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com