|Rob Audenaerde||Apr 23, 2014 3:56 am|
|Michael Sokolov||Apr 23, 2014 7:11 am|
|Rob Audenaerde||Apr 23, 2014 7:30 am|
|Shai Erera||Apr 23, 2014 7:38 am|
|Rob Audenaerde||Apr 23, 2014 7:49 am|
|Shai Erera||Apr 23, 2014 8:13 am|
|Rob Audenaerde||Apr 23, 2014 8:49 am|
|Shai Erera||Apr 24, 2014 3:20 am|
|Shai Erera||Apr 27, 2014 12:27 pm|
|Rob Audenaerde||Apr 29, 2014 12:04 am|
|Shai Erera||Apr 29, 2014 12:43 am|
|Subject:||Re: Getting multi-values to use in filter?|
|From:||Rob Audenaerde (rob....@gmail.com)|
|Date:||Apr 23, 2014 7:49:31 am|
Hi Shai, all,
I am trying to write that Filter :). But I'm a bit at loss as how to efficiently grab the multi-values. I can access the context.reader().document() that accesses the storedfields, but that seems slow.
These create for example a LongFieldSource, which uses the FieldCache.LongParser. These parsers only seem te parse one field.
Is there an efficient way to get -all- of the (numeric) values for a field in a document?
On Wed, Apr 23, 2014 at 4:38 PM, Shai Erera <ser...@gmail.com> wrote:
You can do that by writing a Filter which returns matching documents based on a sum of the field's value. However I suspect that is going to be slow, unless you know that you will need several such filters and can cache them.
Another approach would be to write a Collector which serves as a Filter, but computes the sum only for documents that match the query. Hopefully that would mean you compute the sum for less documents than you would have w/ the Filter approach.
On Wed, Apr 23, 2014 at 5:11 PM, Michael Sokolov < msok...@safaribooksonline.com> wrote:
This isn't really a good use case for an index like Lucene. The most essential property of an index is that it lets you look up documents very quickly based on *precomputed* values.
On 04/23/2014 06:56 AM, Rob Audenaerde wrote:
I'm looking for a way to use multi-values in a filter.
I want to be able to search on sum(field)=100, where field has values in one documents:
In this case 'field' is a LongField. I examined the code in the FieldCache, but that seems to focus on single-valued fields only, or
It this something that can be done in Lucene? And what would be a good approach?
Thanks in advance,