我有以下映射:
PUT /test_products
{
"mappings": {
"_doc": {
"properties": {
"type": {
"type": "keyword"
},
"name": {
"type": "text"
},
"entity_id": {
"type": "integer"
},
"weighted": {
"type": "integer"
}
"product_relation": {
"type": "join",
"relations": {
"window": "simple"
}
}
}
}
}
}
我想获得带有所有“简单”商品的“窗口”产品,但是仅当一个或多个“简单”商品的属性“加权” = 1时
我写了以下查询:
GET test_products/_search
{
"query": {
"has_child": {
"type": "simple",
"query": {
"term": {
"weighted": 1
}
},
"inner_hits": {}
}
}
}
但是我有带有与该术语匹配的“简单”的“窗口”。换句话说,我想通过“ simple”的选项过滤“ window”列表,并获取所有匹配的“ window”及其所有“ simple”。是否可以在一个查询中没有“嵌套”?还是我必须做一些查询?
答案 0 :(得分:0)
好。幸运的是,我只需要获得一个带有其子项ID的“窗口”产品即可,因此我找到了parent_id查询,可以帮助我完成此任务。
现在我有以下查询:
GET test_products/_search
{
"query": {
"parent_id": {
"type": "simple",
"id": "window-1"
}
}
}
不幸的是,我必须执行2个查询(has_child
,然后执行parent_id
),而不是一个,但这对我来说是可以的。