Updating Root Document & Nested Document Behaviour


(Craig Longman) #1

I've read in many places that updating nested documents will cause a reindex of the parent document.

But what I'm not clear on is if updating the parent document will cause a reindex of all the nested documents. It sounds like ES stores them as separate docs under the covers, and if the nested documents don't copy their fields to the parent "_all" or "_source", I think it won't need to reindex them?

What we're thinking about doing is moving our very large fields into nested documents, and have the more frequently changing fields in the root/parent document. We need this as we are way, way too often hitting the merge throttling limit, which just seems to shut down indexing completely.

Thanks,

CraigL


(Mark Walkom) #2

Nesting is just a single document and there is no "parent document" that is separate. So yes, updating anything means that the entire document needs to be reindexed.

Parent/child has separate documents for each though, is that what you mean?.


(Craig Longman) #3

I was basing my comment on the documentation for Nested Types:

Internally, nested objects are indexed as additional documents,
but, since they can be guaranteed to be indexed within the same
"block", it allows for extremely fast joining with parent docs.

So, while I realize they're not accessible or "viewable" as separate docs, it sounded to me like I could update the "internal" parent document without needing to reindex the "internal" nested documents.

I'm doing some testing now with both types to see how it works. We just cannot roll out with the degree of merge throttling that occurs when the big fields in our index are constantly being reindexed.

CraigL


(system) #4