Today the default ResultMode is GLOBAL_FLAT, but it should be PER_NODE_IN_TREE. ResultMode is being used whenever you set the depth of FacetRequest to greater than 1. The difference between the two is:
- PER_NODE_IN_TREE would then compute the top-K categories recursively, for every top category at every level (up to depth). The results are returned in a tree structure as well. For instance:
- GLOBAL_FLAT computes the top categories among all the nodes up to depth, and returns a flat list of categories.
GLOBAL_FLAT is faster to compute than PER_NODE_IN_TREE (it just computes top-K among N total categories), however I think that it's less intuitive, and therefore should not be used as a default. In fact, I think this is kind of an expert usage.