Hi, thanks for chiming in, I'm getting a better handle on this now. I was incorrectly assuming (based on some javadoc comments in lucene) that the concept of a ChainedFilter in Lucene / HS would progressively narrow down the input set of documents that each filter would have to consider. If that were true, ordering would be significant. However each filter in the chain has to process the full index, even if previous filters in the chain have already eliminated documents as invalid in the current search (not sure I understand that decision, but I digress).
So please ignore my previous implication that HS wasn't ordering Chained Filters, it doesn't appear that ordering even matters in Lucene, nor is that the core issue for me.
I see that "FilteredDocIdSet" was added in Lucene 2.9 which basically accomplishes what I'm after. It narrows down the set of documents a secondary filter needs to consider, based on the results of a previously executed filter. Example usage:
http://grepcode.com/file/repo1.maven.or ... ilter.javaSimilarly 'Local Lucene' originally had written something called a SerialChainFilter which did the same things (only online linkI could find):
http://code.google.com/p/digmap/source/ ... java?r=170I don't currently see how one would take advantage of the "FilteredDocIdSet" concept in HS. I can see, in our code, defining a filter @Factory that manually instantiated multiple filters and then passed those into another filter that utilizes the "FilteredDocIdSet". However at that point you've lost the benefits of declaring your filters in annotations and all else that HS brings, etc.
I do see in HS where the internal ChainedFilter is instantiated in FullTextQueryImpl to chain the filters that are configured via @FullTextFilterDefs (
http://grepcode.com/file/repository.jbo ... l.java#435). Would it make sense to provide a configurable version of that class (HS' ChainedFilter) that utilized the FilteredDocIdSet concept? Or is there a simpler way to accomplish what I'm after?
Thanks!