I have started on SOLR-330 and the first one to tackle is the
CapitilizationFilterFactory (just starting at the top of the analysis
package).
At any rate, there are some optimizations to be made here, but one
thing in the file that is not explicitly stated is that the "keep"
word list is case-insensitive. This is the current, undocumented,
behavior. I am fine with documenting and making it so going forward.
However, if, instead, we make it case-sensitive, we can then use a
CharArraySet (from Lucene) to do quick look ups of the term buffer
char array. The reason this comes up is that Token.termText() is now
deprecated and I am switching off to use the Token.termBuffer() char
array. This filter can then just operate directly on the char array,
which should be a lot faster.
Any opinion on this?
-Grant