Managing nested objects
There is a special type of embedded object: the nested one. This resolves a problem related to the Lucene indexing architecture, in which all the fields of embedded objects are viewed as a single object, because during search it is not possible to distinguish values between different embedded objects in the same multi-valued array.
If we consider the previous order example, it's not possible to disguise an item name and its quantity with the same query. We need to index them in different elements and when we join them. This entire trip is managed by nested objects and nested queries.
Getting ready
You need a working ElasticSearch cluster.
How to do it...
A nested object is defined as the standard object with the nested type.
From the example of the Mapping an object recipe, we can change the type from object
to nested
as shown in the following code:
{ "order" : { "properties" : { "id" : {"type" : "string", "store" : "yes", "index":"not_analyzed"}, ...