gpt4 book ai didi

elasticsearch - 如何使用Elasticsearch在一个合并的请求中同时搜索范围查询和匹配查询?

转载 作者:行者123 更新时间:2023-12-03 00:59:10 31 4
gpt4 key购买 nike

我有两个按预期方式工作的组合查询。

第一个使用恒定分数,而两个值之间的范围匹配:

GET /_search
{
"query" : {
"constant_score" : {
"filter" : {
"range" : {
"locationId" : {
"gte" : 100012138,
"lt" : 101000349
}
}
}
}
}
}

第二个搜索 bool(boolean) 。
GET /_search
{
"query": {
"filtered": {
"query": {
"bool": {
"must": [{
"match": {
"name": "Barcelona"
}
}]
}
}
}
}

}

现在,我需要合并它们,而我却在苦苦挣扎,因为尝试了将多个合并到不同范围的组合,但没有成功。

因此,此查询返回错误。
GET /_search
{
"query": {
"filtered": {
"query": {
"bool": {
"must": [{
"match": {
"name": "sídlisko"
}
}]
}
}
},
"constant_score" : {
"filter" : {
"range" : {
"locationId" : {
"gte" : 100012138,
"lt" : 1000010349
}
}
}
}
}
}

错误:

... failed to parse search source. expected field name but got [START_OBJECT]

最佳答案

您可以将常数分数查询放入bool must子句中

{
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"match": {
"name": "sidlisko"
}
},
{
"constant_score": {
"filter": {
"range": {
"locationId": {
"gte": 100012138,
"lt": 1000010349
}
}
}
}
}
]
}
}
}
}
}

关于elasticsearch - 如何使用Elasticsearch在一个合并的请求中同时搜索范围查询和匹配查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40072661/

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