Marcel Reutegger wrote:
1) New QueryHandler class
2) Introduce parameter in configuration
3) Auto-detect in SearchIndex
I prefer 1) because it makes it explicit. I have reservations regarding
3) because it introduces some magic. I don't like 2) because we probably
cannot come up with a sensible name ;)
I'm a bit indifferent about 1) because I think the change is not fundamentally
enough to justify a new QueryHandler class. Do you have any other plans with the
new QueryHandler implementation? If I were to implement a SQL based QueryHandler
solution I would create a new QueryHandler implementation, but not for a small
change like that. Why don't you like my suggestion to replace the old behaviour
using the strategy pattern? Just because you have to specify or auto-detect
which strategy to use? Or is there any other reason?
I don't like 2) as well because I prefer 3) ;). I would like to reduce the
number of choices for the user (see i.e.
http://www.joelonsoftware.com/items/2006/11/21.html). The system should just
work optimally by itself. Which problem do you see in not explicitly stating in
the configuration which index format is used? The only reason I could come up
with is for people not knowing which format they use. But I would just log a
warning if the index is in the old format and that query performance will
improve if they rebuild their indexes.
I don't want to be academically, I just want the best solution for the user. I
wouldn't object if you decide to go for 1). It's just that I would like to
understand your reasoning.
Cheers & a happy weekend ;)
Chris