lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shai Erera (JIRA)" <>
Subject [jira] [Commented] (LUCENE-5476) Facet sampling
Date Tue, 04 Mar 2014 10:02:25 GMT


Shai Erera commented on LUCENE-5476:

Thanks Rob. Few comments:

* Typo in jdoc: "to low" -- "too low"?

* About constructors: can we have two ctors, one taking samplingRatio and another taking all
the parameters?
** And then I think that seed=0 could be used as "generate a seed for me", so you don't need
to take a Long (can take primitive)

* I'd make the first ctor call {{this(false, ratio, 0)}} and fold in init() inside the all-params

* It's a matter of personal preference, but I like that static classes are either at the top
of the class (above all class members) or at the end .. but not in the middle :)

* {{correctCountFacetResults}}
** I think this is redundant in the jdoc "Corrects FacetCounts if sampling is used." -- you
obviously call this method if you used sampling?

* XORShift64Random: maybe we should move it under o.a.l.util (and lucene/core)? I think it's
a useful utility class in general?
** At any rate, it should be static class and let's not nest it inside SampledDocs

* Now that the collector sub-samples during collection and does not record the original docs,
I think SampledDocs can be declared private (static) class as I don't see any use for someone
to care if it's SampledDocs or just Docs?

bq. Code style-wise: I see this. is sometimes used, and sometimes not. What do you prefer?

This is a personal preference. I use {{this.}} only when the method has a parameter which
conflicts w/ class members and I often use it explicitly in the ctor.

bq. It seems FixedBitSet contains a lot of empty space

You can use WAH8DocIdSet which offers better compression, but it means that the collector
would need to declare it doesn't support out-of-order collection. If {{keepScores=true}} it
doesn't support that anyway, but I think you can explore with it? Can you benchmark with it
and report back? If the results are good, maybe we can turn off out-of-order collection for
sampling by default and let the app override this behavior if it cares about out-of-order?

> Facet sampling
> --------------
>                 Key: LUCENE-5476
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Rob Audenaerde
>         Attachments: LUCENE-5476.patch, LUCENE-5476.patch, LUCENE-5476.patch,,
> With LUCENE-5339 facet sampling disappeared. 
> When trying to display facet counts on large datasets (>10M documents) counting facets
is rather expensive, as all the hits are collected and processed. 
> Sampling greatly reduced this and thus provided a nice speedup. Could it be brought back?

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message