lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Audenaerde (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (LUCENE-5476) Facet sampling
Date Wed, 05 Mar 2014 08:19:45 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-5476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13920642#comment-13920642
] 

Rob Audenaerde edited comment on LUCENE-5476 at 3/5/14 8:18 AM:
----------------------------------------------------------------

Hi all, good points.

Actually, in my application, I always do a count before any other search/facetting. This means
I can set a sampling ratio to be appropriate for the number of results (or even decide not
to do sampling at all). So for me, I have enough functionality as-is in this issue.

But of course if would be nice if it could be implemented in one pass, because there are more
people using Lucene :)
 
I think it would not be that hard to implement a lower-bound; if for example 15.000 would
be the minimum number of documents before sampling kicks in, the {{RandomSamplingFacetCollector}}
could also collect docs in a int[15000] to make sure that if there are less hits, the int[]
is used, else the sampled set. The exact-part collector can stop collecting after these 15k
docs.

A bit harder is the upper-bound, as you only know how many hits there are after collecting
them all. To prevent collecting all the documents, you need a sampling rate to start skipping
documents. If the result then contains too much document; the sampled result can be re-sampled
to the desired size. I think this is more like the previous implementation of the SamplingCollector.

I have already implemented a small test (and fixed an off-by-one using it) ; I will create
a patch today that contains this test and the {{xorshift}} merged back into the collector.
 

Is it a good idea to explore this upper-bound/lower-bound approach? Maybe you already thought
of alternative approaches as well?
  



was (Author: robau):
Hi all, good points.

Actually, in my app, I always to a count before any other search/facetting. This means I can
set a sampling ratio to be appropriate for the number of results (or even decide not to do
sampling at all). So for my application, I have enough functionality as-is in this issue.

But of course if would be nice if it could be implemented in one pass, because there are more
people using Lucene :)
 
I think it would not be that hard to implement a lower-bound; if for example 15.000 would
be the minimum number of documents before sampling kicks in, the {{RandomSamplingFacetCollector}}
could also collect docs in a int[15000] to make sure that if there are less hits, the int[]
is used, else the sampled set. The exact-part collector can stop collecting after these 15k
docs.

A bit harder is the upper-bound, as you only know how many hits there are after collecting
them all. To prevent collecting all the documents, you need a sampling rate to start skipping
documents. If the result then contains too much document; the sampled result can be re-sampled
to the desired size. I think this is more like the previous implementation of the SamplingCollector.

I have already implemented a small test (and fixed an off-by-one using it) ; I will create
a patch today that contains this test and the {{xorshift}} merged back into the collector.
 

Is it a good idea to explore this upper-bound/lower-bound approach? Maybe you already thought
of alternative approaches as well?
  


> Facet sampling
> --------------
>
>                 Key: LUCENE-5476
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5476
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Rob Audenaerde
>         Attachments: LUCENE-5476.patch, LUCENE-5476.patch, LUCENE-5476.patch, LUCENE-5476.patch,
SamplingComparison_SamplingFacetsCollector.java, SamplingFacetsCollector.java
>
>
> 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
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message