I was wondering whether there is a possibility to have rolling index (time based) with parent/child relationship.
I am indexing time based data (index per day, all aliased) and all docs are related to one parent with ID. Users than can in any time label each parent and I would need to search (and aggregate) all child docs with certain labels.
Parent/child is as you point out very difficult to use with time-based indices due to the limitations that the parent need to be in the same shard as the children, thereby requiring a parent per time-based index in order for filtering on parent fields to work. Depending on the number of children per parent and the frequency at which parent tags change, denormalisation and/or application side joins are generally the best way to go.
thank you for your answer. The frequency of parent tagging can be hundreds per minute. However I need to apply that tag for ALL docs in the cluster that are related to the parent.
If I understand correctly:
2016-01-01 - I create child C1 with relation to A
2016-01-02 - I create child C2 with relation to A
If user will tag parent A system needs to create/update parent document in both 2016-01-01 and 2016-01-02 indices, is that correct?
Also if next day someone will create new index (2016-01-03) I would be forced to insert parent doc A to this index too...?
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.