Alternatively, if you mode this with parent-child, then you can use
min_children/max_children which is available in the next release

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-has-child-filter.html#_min_max_children_2

clint


On 20 June 2014 17:15, Mike <mnilsson2...@gmail.com> wrote:

> I'm ok with the count returned being some estimate.  Say in this simple
> example if it returned 1 for just Joe, or 3 for John, Joe, and Jack that
> would be ok too.  I am also ok with restructuring my data in any way to
> more efficiently get this number.
>
> You mentioned creating a reference count document.  How would that look?
>  1 doc per unique author, with a count of the total number of books he
> wrote so then I can do a range aggregation on that number?  What if I
> wanted to find "the number of authors who have written between 2-3 books
> that have a title containing E, F, H, or I" (still 2 in this case, John and
> Joe) ?
>
>
>
>
> On Thursday, June 19, 2014 6:43:41 PM UTC-4, Itamar Syn-Hershko wrote:
>
>> This is a Map/Reduce operation, you'll be better off maintaining a
>> ref-count document IMO then trying to hack the aggregations framework to
>> support this
>>
>> Another reason for doing it that way is in a distributed environment some
>> aggregations can't be computed to an exact value - the Terms bucketing is
>> one example. So if you need exact values, I'd go for a model that does it.
>>
>> --
>>
>> Itamar Syn-Hershko
>> http://code972.com | @synhershko <https://twitter.com/synhershko>
>> Freelance Developer & Consultant
>> Author of RavenDB in Action <http://manning.com/synhershko/>
>>
>>
>> On Fri, Jun 20, 2014 at 1:34 AM, Mike <mnilss...@gmail.com> wrote:
>>
>>> Assume each document is a book:
>>> { title: "A", author: "Mike" }
>>> { title: "B", author: "Mike" }
>>> { title: "C", author: "Mike" }
>>> { title: "D", author: "Mike" }
>>>
>>> { title: "E", author: "John" }
>>> { title: "F", author: "John" }
>>> { title: "G", author: "John" }
>>>
>>> { title: "H", author: "Joe" }
>>> { title: "I", author: "Joe" }
>>>
>>> { title: "J", author: "Jack" }
>>>
>>>
>>> What is the best way to fin the number of authors who have written
>>> between 2-3 books?  In this case it would be 2, John and Joe.
>>>
>>> I know I can do a terms aggregation on author, set size to be very very
>>> large, and then on the client side traverse through the thousands of
>>> authors and count how many had between 2-3.  Is there a more efficient way
>>> to do this?  The cardinality aggregation is almost what I want, if only I
>>> could specify a min and max term count.
>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "elasticsearch" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to elasticsearc...@googlegroups.com.
>>>
>>> To view this discussion on the web visit https://groups.google.com/d/
>>> msgid/elasticsearch/22fc4e6d-bcac-426c-a343-ff1d36fc25de%
>>> 40googlegroups.com
>>> <https://groups.google.com/d/msgid/elasticsearch/22fc4e6d-bcac-426c-a343-ff1d36fc25de%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "elasticsearch" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elasticsearch+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/2cab8d84-7c65-4f6e-ab39-3e2a0e859a87%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/2cab8d84-7c65-4f6e-ab39-3e2a0e859a87%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAPt3XKSyio7izuxr5UL4SD5uiA5J7rwtfyP742W3robxfk7s6A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to