NestedQuery document (Data API 23.2)
A nested query queries 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 constrain a search to masters that have
variants that match multiple constraints (like color = blue AND size = M).
This query is not compatible with some search types.
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.