Hi Guys,
I am using Lucene 4.2.
1> For my use case i am doing a search say name:xyz* and then i have a need
to do a grouping with (from query same as name:xyz* + Filter + GroupSort)
may be in same/different thread.
>From my understanding the second internal search will be faster but i have
good number of threads doing the same with different queries which may
affect the IO Cache.
Still, i don't want to perform same search internally again for grouping .
Reusing the previous search results by having a Bitset and using
BitsFilteredDocIDSet to Filter may solve till filtering but is there any
way to wrap these result DocIDsets as input for grouping ?
or
Any smart way ?
2> For an AND Query i have tried
a) BooleanQuery, Query
b) FiledCacheTermsFilter
c) DocIDBitSet + BitsFilteredDocIDSet.
with 1 GB index and 4 lakh documents matching First Query and 2 lakh
documents matching second query but retrieving/collecting 10000 documents
only.
With prior warming i find that (a) & (b) take almost same time. I knew that
only when we reuse the Filter we get its benefits.
(c) takes around 30-40ms less time.
Can we conclude from this that method (c) is better ?
Is my choice Bitset implementation appropriate ?
Did i get somethings wrong & Are there any smart ways to do these ?
Thanks,
Arun