Under the section "Setting, System, Administration, Feature Management", there is a checkmark called ' Collector based index queries'.
Can you explain that this means and why it is enabled by default?
Under the section "Setting, System, Administration, Feature Management", there is a checkmark called ' Collector based index queries'.
Can you explain that this means and why it is enabled by default?
Hi Lars,
I can certainly give it a try, but it may not make too much sense unless you're familiar with the Lucene.Net API.
The feature "Collector based index queries" enables a different way to retrieve data from Lucene. Moving from DynamicWeb 9 to DynamicWeb 10 required an upgrade of Lucene.Net from version 3.0.3 to 4.8. That also required a refactoring the our Lucene provider to be compatible with the new version. Previously, we used DrillDownQuery and DrillSideways to fetch the docs and facets from Lucene, but this could produce incorrect facet results in some situations. To solve this issue, we added another way to get docs and facets from the index. As you may have guessed, this is using collectors.
Using collectors produce a correct facet result in all tested scenarios -- even the ones where the previous implementation didn't. However, there is a trade-off. The new implementation is a little bit slower, and this is exacerbated the more active facet groups you have. By active, I mean groups with selected values. This is the reason we left the original implementation in place. You have the option to choose a known flawed facet lookup, if the slight slowdown is unacceptable or if the facet result works fine for you -- it doesn't produce an incorrect result in all cases. Understandably, we chose to make it default since the result it produces is correct opposed to the other implementation.
TL;DR, it's a new way to fetch information from the index using collectors because the previous implementation produced incorrect results in some cases. The new method is slightly slower and time scales with the number of active facet groups. Therefore, you get to choose which implementation you want. We decided that the default should be the one that produces the correct result.
- Jeppe
You must be logged in to post in the forum