Hi,
I have a project, where we need to do aggregations over facetted values. The
stats component is not powerful enough anymore and the new statistic component
seems not to be ready yet. I understand that it's not easy to create a general
purpose component for this task. I decided to check whether I can solve my use
case by myself, but I'm struggling. Any clarification regarding the following
points would be very appreciated:
- I assume that some of my use cases could be solved by using a custom
collector. Lucene seems to be build to be extensible by deriving classes and
overriding methods. That's how I would expect SOLID code to be. But looking at
the SOLR code, I see a lot of hard coded types and no way to just exchange the
collector. This is the case for most of the code parts I have read, so I
wonder: Is there another way to customize / extend SOLR? How is the SOLR code
supposed to be reused?
- I found several times code snippets like " if (collector instanceof
DelegatingCollector) { ((DelegatingCollector)collector).finish() } ". Such code
is considered bad practice in every OO language I know. Do I miss something
here? Is there a reason why it's solved like this?
cheers,
Achim