NestedQuery document (Data API 18.8)
Nested query allows to query upon nested documents that are part of a larger document. The classical example is a product master with variants (in one big document) where you want to constraint a search to masters that have variants that match multiple constraints (like color = blue AND size = M).
Example: finds all the documents that has firstname = "John" and lastname = "Doe"
{
"query": {
"bool_query": {
"must": [{
"nested_query": {
"path": "order.shipping_addresses",
"query": {
"bool_query": {
"must": [{
"bool_query": {
"must": [{
"term_query": {
"fields": ["order.shipping_addresses.first_name"],
"operator": "is",
"values": ["John"]
}
}]
}
}, {
"bool_query": {
"must": [{
"term_query": {
"fields": ["order.shipping_addresses.last_name"],
"operator": "is",
"values": ["Doe"]
}
}]
}
}]
}
},
"score_mode": "avg"
}
}]
}
}
}
Property | Type | Constraints | Description |
---|---|---|---|
path
|
String | mandatory=true, nullable=false | |
query
|
Query {BoolQuery, FilteredQuery, MatchAllQuery, NestedQuery, TermQuery, TextQuery} | mandatory=true, nullable=false | |
score_mode
|
Enum {avg, total, max, none} |
X
OCAPI versions 15.x and 16.x will be retired on March 31, 2021. For dates and more information, see the OCAPI versioning and deprecation policy and this Knowledge Article.