gpt4 book ai didi

go - 使用 Go olivere/elastic 进行 Elasticsearch 查询以过滤 value1 == value2 的文档

转载 作者:行者123 更新时间:2023-12-02 17:38:32 25 4
gpt4 key购买 nike

我需要构建查询来获取 doc.value1 == doc.value2 的文档

{
"query": {
"bool" : {
"filter" : [{
"script" : {
"script" : {
"source": "doc['val1'].value == doc['val2'].value",
"lang": "painless"
}
}
}]
}
}
}

这是我需要用 olivere/elastic 构建的,如果我将其作为 POST 请求发送,它就可以工作。

在 golang 中我有类似的东西

"github.com/olivere/elastic"
...

query := elastic.NewBoolQuery()
// then add something to this query or leave it empty it works fine
// but if I add
query = query.Filter(elastic.NewBoolQuery().Must(elastic.NewScript("doc.['val1'].value == doc.['val2'].value")))
// I'm getting: Error 400 (Bad Request): [source] query malformed,
// no start_object after query name [type=parsing_exception]

// Then i run it like:
client, err := elastic.NewClient()
if err != nil {
fmt.Println(err)
return
}
resp, err := client.Search("myIndex").Type("myDoc").Query(query).TrackTotalHits(true).Size(limit).Do(context.Background())
if err != nil {
fmt.Println(err)
return
}

最佳答案

query = query.Filter(elastic.NewScriptQuery(elastic.NewScript("doc['val1'].value == doc['val2'].value")))

关于go - 使用 Go olivere/elastic 进行 Elasticsearch 查询以过滤 value1 == value2 的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57787772/

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