Managing nested objects
There is a special type of embedded object: the nested object. This resolves problems related to Lucene indexing architecture, in which all the fields of the embedded objects are viewed as a single object. During a search in Lucene, it is not possible to distinguish between the values of different embedded objects in the same multivalued array.
If we consider the previous order example, it's not possible to distinguish between an item name and its quantity with the same query, as Lucene puts them in the same Lucene document object. We need to index them in different documents and to 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 a standard object with the type nested
.
From the example in the Mapping an object recipe in this chapter, we can change the type from object to nested as follows:
{ "order" : { "properties" : { "id" : {"type...