Elasticsearch 会抛出有关格式错误的通配符查询的错误,即使查询遵循文档



我正在编写一个简单的 elasticsearch 查询,但无法让 elasticsearch 接受这样的简单查询(从运行打字稿的节点控制台复制(:

{
query: {
wildcard: {
name: {
value: 'begin*'
}
},
bool: {
must: [
{
term: {
'companyId.keyword': 'KEYWORD'
}
}
]
}
} 
}

需要注意的两件事:

1.( 查询的 bool 部分将工作并自行获得结果 2.( 我在这里遵循了通配符的文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.x/query-dsl-wildcard-query.html

但是,当我进行查询时,我得到以下响应:

[wildcard] malformed query, expected [END_OBJECT] but found [FIELD_NAME]

我做错了什么?

您需要将通配符部分移动到布尔值内。如果要同时匹配通配符和术语查询,它们应位于"必须"列表中,如下所示:

{
"query": {
"bool": {
"must": [
{
"wildcard": {
"name": {
"value": "begin*"
}
}
},
{
"term": {
"companyId.keyword": "KEYWORD"
}
}
]
}
}
}

最新更新