Extending Martijn's approch to the current Elasticsearch 1.5, we can
execute *inner_hits* together with *has_child* query, and get counts as the
score for parent documents:
{
"query": {
"has_child": {
"type": "comment",
"score_mode": "sum",
"query": {
"match_all": {}
},
"inner_hits": {}
}
}
}
Monday, 3 december 2012 г., 14:22:32 UTC+1 user Martijn v Groningen wrote:
>
> Another trick that might be interesting to test is to use the
> `top_children` query and then set `score` to `sum` and wrap the child
> query in a `constant_score` query. The score of the parent would then
> tell you how many child documents have matched. This trick obviously
> only is useable if you don't sort by relevance, but by something else
> like a field or you don't care about the ordering of the hits. The
> benefit of this approach is that only one search request needs to be
> executed to get the parent documents with the child count.
>
> Martijn
>
> On 3 December 2012 22:47, davidconde <[email protected] <javascript:>>
> wrote:
> > Thanks that seems to have done the job :)
> >
> >
> > On Wednesday, 28 November 2012 18:06:38 UTC, Radu Gheorghe wrote:
> >>
> >> Hello Dave,
> >>
> >> It might help if you use a has_parent query[0] and do a terms facet[1]
> on
> >> the _parent field.
> >>
> >> I've gisted an example here:
> >> https://gist.github.com/4162883
> >>
> >> If that works for you, you might get better performance if you replace
> the
> >> query with a facet filter[2].
> >>
> >> The downside of this approach is that the query itself will return the
> >> children, not the parents. That said, you can take the parent IDs from
> the
> >> facet results and get the contents using the multi get API[3].
> >>
> >> [0]
> >>
> http://www.elasticsearch.org/guide/reference/query-dsl/has-parent-filter.html
> >> [1]
> >>
> http://www.elasticsearch.org/guide/reference/api/search/facets/terms-facet.html
>
> >> [2]
> >>
> http://www.elasticsearch.org/guide/reference/api/search/facets/index.html
> >> [3] http://www.elasticsearch.org/guide/reference/api/multi-get.html
> >>
> >> Best regards,
> >> Radu
> >> --
> >> http://sematext.com/ -- ElasticSearch -- Solr -- Lucene
> >>
> >> On Wed, Nov 28, 2012 at 2:48 PM, davidconde <[email protected]> wrote:
> >>>
> >>> I have setup a parent child relationship and I would like to be able
> to
> >>> return a list of parents but also include the count of children per
> parent.
> >>> Is there an easy way to do this at the moment?
> >>>
> >>> Thanks,
> >>> Dave
> >>>
> >>> --
> >>>
> >>>
> >>
> >>
> > --
> >
> >
>
>
>
> --
> Met vriendelijke groet,
>
> Martijn van Groningen
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/2899e6be-64d9-4dff-9e55-e4c5dc4d3f1f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.