elasticsearch中的格式错误查询


search = {
"from": str(start),
"size": str(size),
"query": {
"bool": {
"must": {
"multi_match": {
"query":query,
"fields":["name","description","tags","comments","created","creator","transaction","wallet"],
"operator":"or"}
},
"filter": { "term": { "channel": channel } } } } }

这是python字典对象。它得到以下错误:

elasticsearch.BadRequestError: BadRequestError(400, 'parsing_exception', '[bool] malformed query, expected [END_OBJECT] but found [FIELD_NAME]')

我没看到。请帮助。Start, size, query, channel都是变量

我看了很多例子elasticsearch查询。我所尝试的都没有通过语法错误。我还尝试了simple_search_string和简单的multi_match。我总是需要开始和大小,总是需要过滤通道。

所以问题是其中一些字段是数组,并且需要在它们内部[]。特别是必须和过滤。添加适当的大括号解决了这个问题。下面是新的格式:

search = {
"from": start,
"query": {
"bool": {
"must": [
{ "multi_match": {
"query": query,
"fields": ["name","description","tags","comments","created","creator","transaction","wallet"]
} },
{ "match": {
"channel": channel
} }
]
}
}
}

注意,我也放弃了使用过滤器,只是添加了另一个匹配项。我在搜索调用中使用size作为其参数之一。

最新更新