【发布时间】:2018-07-14 19:25:38
【问题描述】:
我一直在阅读文档并试图实现通过多个字段和列过滤结果的解决方案,但是我不断收到错误; 格式错误的查询。
我想用完全相同的值过滤结果,例如:
is_active: true
category_id: [1,2,3,4]
brand: "addidas"
gender: "male"
为了更清楚地说明我打算做什么,如果它是用 SQL 编写的,我希望它是这样运行的:
SELECT .... WHERE
is_active= 1 AND category_id IN(1,2,3,4)
AND brand='addidas' AND gender='male'
我在 DSL 中的查询如下:
{
"body": {
"query": {
"nested": {
"query": {
"bool": {
"must": {
"terms": {
"category_id": [
1,
2,
3
]
},
"term": {
"is_active": true
},
"term": {
"brand": "addidas"
}
}
}
}
}
}
}
}
如何在 elasticsearch 中按照描述过滤多个字段和值?
如果您需要我回答问题所需的额外信息,请发表评论。如果您添加文档链接,还请提供一个示例(使用查询 dsl)说明如何我目前或类似的情况应该得到解决。
【问题讨论】:
-
请显示您遇到的完整错误以及您需要匹配的示例文档。另外我认为解决方案可能是简单地删除
nested查询。 -
@Kilise,请添加在 elasticsearch 中索引的文档示例