elasticsearch 格式错误的查询,应为“0”;结束“对象”;但是找到了;字段“U名称”;
您好,在Kibana控制台中运行术语查询时,我遇到了一个语法分析异常 查询
elasticsearch 格式错误的查询,应为“0”;结束“对象”;但是找到了;字段“U名称”;,
elasticsearch,exception,kibana,
elasticsearch,Exception,Kibana,您好,在Kibana控制台中运行术语查询时,我遇到了一个语法分析异常 查询 GET /products/_search { "query": { "terms": { "tags.keyword": [ "Soup", "Cake" ] }, "range": { "in_stock": {
GET /products/_search
{
"query": {
"terms": {
"tags.keyword": [ "Soup", "Cake" ]
},
"range": {
"in_stock": {
"gte": 10,
"lte": 20
}
}
}
}
回应/例外
{
"error" : {
"root_cause" : [
{
"type" : "parsing_exception",
"reason" : "[terms] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line" : 6,
"col" : 5
}
],
"type" : "parsing_exception",
"reason" : "[terms] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line" : 6,
"col" : 5
},
"status" : 400
}
有谁能告诉我为什么会出现此异常以及如何解决它吗?您需要使用来组合术语和范围查询。修改搜索查询,如下所示-
{
"query": {
"bool": {
"must": [
{
"terms": {
"tags.keyword": [
"Soup",
"Cake"
]
}
},
{
"range": {
"in_stock": {
"gte": 10,
"lte": 20
}
}
}
]
}
}
}
这很有效,谢谢。但是我还是想知道为什么我提到的查询不起作用。@Udhav Mohata如果你想组合多个查询,你必须使用一个类似bool查询的复合查询。您不能在一个查询子句中使用多个查询。此外,请使用
filter
而不是must
,因为这不涉及评分。@Udhav Mohata您能不能请您投票并接受答案,因为这有助于您解决问题:)