On Mon, Oct 12, 2015 at 4:32 AM, Alan Woodward <a...@flax.co.uk> wrote:
> Hi Trejkaz,
>
> You can still use a standard collector if you don’t need to worry about 
> multi-threaded search.
> It sounds as though what you want to do is implement your own Collector that 
> will read and
> record docvalues hits, and use MultiCollector to wrap it and a standard 
> TopDocsCollector together.

This is what I'm currently trying out, but I'm hitting exactly the
problem I predicted. To use the values, I have to put them into some
kind of storage.

I can put them into an int[] but then it's the worst case memory usage
for queries returning a small number of hits.

Or I can put them into something like a fastutil Int2IntOpenHashMap,
which reduces the memory usage for small queries, while also making
large queries much slower.

Neither of these is really appealing right now.

Two ideas but I can't figure out if they'll work:

1. The doc IDs are visited in order, at least within each segment. Is
there a structure in Lucene itself somewhere which can store that off
quickly and efficiently?

2. Am I allowed to just hold onto the NumericDocValues for each leaf
and hold onto them for a long period of time, or is there an
implementation of them which breaks that? I figure it's already
sitting around, so that should be zero additional storage?

TX

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to