node.js - 即使查询遵循文档,Elasticsearch 也会引发有关格式错误的通配符查询的错误
问题描述
我正在编写一个简单的 elasticsearch 查询,但无法让 elasticsearch 接受这样的简单查询(从运行 typescript 的节点控制台复制):
{
query: {
wildcard: {
name: {
value: 'begin*'
}
},
bool: {
must: [
{
term: {
'companyId.keyword': 'KEYWORD'
}
}
]
}
}
}
2点需要注意:
1.)查询的布尔部分将起作用并自行获得结果 2.)我在此处遵循了通配符的文档:https ://www.elastic.co/guide/en/elasticsearch/reference/7.x/查询-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"
}
}
]
}
}
}
推荐阅读
- symfony - 无法覆盖主页尾部斜杠
- .net - 点击失败
- python-3.x - Python pynput - 程序在启动时滞后
- android - Android studio 3.3 错误构建 apk 或运行应用程序
- python - 为什么基本子集和算法不处理负值?
- r - Highcharter酒吧颜色问题
- java - 为什么 Spring 不能实例化我的自定义 ApplicationContext?
- python - Transcrypt编译错误Python 3.7 Windows
- android - 如何在 EditText 中用逗号分隔数字
- javascript - 两个视觉上相同的文本位如何与剪贴板不同?