bool 格式错误的查询,预计 END_OBJECT 但发现 FIELD_NAME 无法查询 _search
bool malformed query, expected END_OBJECT but found FIELD_NAME unable to query _search
所以我正在尝试 post 将此查询转换为 elastic 并出现标题中的错误。这是我的参考查询:
{
"query": {
"bool": {
"filter": [ {
"match_phrase": {
"doc_type": "commits"
}
},
{
"range": {
"@timestamp": {
"gte": start_date + "T00:00:00+00:00",
"lte": end_date + "T00:00:00+00:00"
}
}
}
],
"should":
{
"match_phrase": {"field1": "string"}
},
"minimum_should_match": 1,
"must_not":
{
"match_phrase": {"repository_name": "repo_name"}
}
},
"size": 0,
"aggs": {
"repo_name": {
"terms": {
"field": "repository_full_name",
"size": 10000
},
"aggs": {
"repo_name": {
"terms": {
"field": "BRANCH_NAME",
"size": 10000
}
}
}
}
}
}
}
我想了解为什么出现此错误?我已经仔细检查了所有括号是否正确闭合,无法绞尽脑汁。
您在查询部分末尾缺少一个 }
。在开始聚合部分之前,应该关闭查询部分。
结构应该是 -
{
"query":{},
"aggs":{}
}
试试下面的查询
{
"query": {
"bool": {
"filter": [
{
"match_phrase": {
"doc_type": "commits"
}
},
{
"range": {
"@timestamp": {
"gte": start_date + "T00:00:00+00:00",
"lte": end_date + "T00:00:00+00:00"
}
}
}
],
"should": {
"match_phrase": {
"field1": "string"
}
},
"minimum_should_match": 1,
"must_not": {
"match_phrase": {
"repository_name": "repo_name"
}
}
}
}, // note this
"size": 0,
"aggs": {
"repo_name": {
"terms": {
"field": "repository_full_name",
"size": 10000
},
"aggs": {
"repo_name": {
"terms": {
"field": "BRANCH_NAME",
"size": 10000
}
}
}
}
}
}
所以我正在尝试 post 将此查询转换为 elastic 并出现标题中的错误。这是我的参考查询:
{
"query": {
"bool": {
"filter": [ {
"match_phrase": {
"doc_type": "commits"
}
},
{
"range": {
"@timestamp": {
"gte": start_date + "T00:00:00+00:00",
"lte": end_date + "T00:00:00+00:00"
}
}
}
],
"should":
{
"match_phrase": {"field1": "string"}
},
"minimum_should_match": 1,
"must_not":
{
"match_phrase": {"repository_name": "repo_name"}
}
},
"size": 0,
"aggs": {
"repo_name": {
"terms": {
"field": "repository_full_name",
"size": 10000
},
"aggs": {
"repo_name": {
"terms": {
"field": "BRANCH_NAME",
"size": 10000
}
}
}
}
}
}
}
我想了解为什么出现此错误?我已经仔细检查了所有括号是否正确闭合,无法绞尽脑汁。
您在查询部分末尾缺少一个 }
。在开始聚合部分之前,应该关闭查询部分。
结构应该是 -
{
"query":{},
"aggs":{}
}
试试下面的查询
{
"query": {
"bool": {
"filter": [
{
"match_phrase": {
"doc_type": "commits"
}
},
{
"range": {
"@timestamp": {
"gte": start_date + "T00:00:00+00:00",
"lte": end_date + "T00:00:00+00:00"
}
}
}
],
"should": {
"match_phrase": {
"field1": "string"
}
},
"minimum_should_match": 1,
"must_not": {
"match_phrase": {
"repository_name": "repo_name"
}
}
}
}, // note this
"size": 0,
"aggs": {
"repo_name": {
"terms": {
"field": "repository_full_name",
"size": 10000
},
"aggs": {
"repo_name": {
"terms": {
"field": "BRANCH_NAME",
"size": 10000
}
}
}
}
}
}