elasticsearch - ES 7 - 使用匹配查询和过滤器
问题描述
我使用 ElasticSearch 7.0,我有这个简单的查询:
"bool": {
"must": {
"match": {
"title": {
"query": "engineer"
}
}
},
"filter": {
"0": {
"term": {
"type_id": 1
}
},
"term": {
"active": 1
}
}
}
我得到这个错误:
[匹配] 格式错误的查询,应为 [END_OBJECT],但找到了 [FIELD_NAME]
我试过 :
"must": {
"match": {
"title": "engineer"
}
},
但是同样的错误,我在这里看不到我的语法错误?我有相同的查询使用具有相同过滤器的多重匹配。
解决方案
您的过滤器必须包含在一个数组中,如下所示:
{
"bool": {
"must": {
"match": {
"title": {
"query": "engineer"
}
}
},
"filter": [
{
"term": {
"type_id": 1
}
},
{
"term": {
"active": 1
}
}
]
}
}
推荐阅读
- python - Python Tkinter - 用函数外的熊猫读取函数内的值
- php - 坚持如何修复 RegExpression 以将电子邮件解析为名称和地址
- javascript - 重置用户密码的云功能不起作用
- javascript - 为什么我的破折号/连字符在 onkeup javascript 后消失
- azure - 如何使用 Microsoft Graph API 在 Azure AD 中显示用户资源类型的管理器
- python - 无法在 pyplot 图表中按月对 x 轴进行分组(Python)
- c - 线性搜索算法(错误)
- ruby-on-rails - 什么时候使用 `ActionCable::Channel::Streams#stream_from` 而不是 `#stream_for` 更好?
- php - 在共享托管公共资产中部署 codeigniter 4 结果为 404
- kubernetes - Kubernetes 命名空间中的 netcat 监听 pod 无法连接