I tried with this morning build and the filter aggregation now works on top of the top_tag_hits aggregation. We plan to thoroughly test this feature as we need it to be "feature complete".
Thank you. Le vendredi 30 mai 2014 12:43:50 UTC+2, Martijn v Groningen a écrit : > > Hi Stephan, > > The bug has been fixed, can you try out a new build? > > Martijn > > > On 30 May 2014 09:45, Martijn v Groningen <[email protected] > <javascript:>> wrote: > >> This is indeed a bug, thanks for sharing it! This should be easy to fix. >> >> >> On 27 May 2014 11:35, <[email protected] <javascript:>> wrote: >> >>> Hello, >>> I tried the new top_hots aggregation and made it work on denormalized >>> data. >>> >>> However, when I tries to add a filter I ran into the following exception: >>> >>> [2014-05-27 11:32:12,869][DEBUG][action.search.type ] [Cap 'N >>> Hawk] failed to reduce search >>> org.elasticsearch.action.search.ReduceSearchPhaseException: Failed to >>> execute phase [fetch], [reduce] >>> at >>> org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.finishHim(TransportSearchQueryThenFetchAction.java:141) >>> at >>> org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction$1.onResult(TransportSearchQueryThenFetchAction.java:113) >>> at >>> org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction$1.onResult(TransportSearchQueryThenFetchAction.java:107) >>> at >>> org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:526) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: java.lang.NullPointerException >>> at >>> org.apache.lucene.search.TopDocs$ScoreMergeSortQueue.<init>(TopDocs.java:89) >>> at org.apache.lucene.search.TopDocs.merge(TopDocs.java:219) >>> at org.apache.lucene.search.TopDocs.merge(TopDocs.java:209) >>> at >>> org.elasticsearch.search.aggregations.bucket.tophits.InternalTopHits.reduce(InternalTopHits.java:107) >>> at >>> org.elasticsearch.search.aggregations.InternalAggregations.reduce(InternalAggregations.java:146) >>> at >>> org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation.reduce(InternalSingleBucketAggregation.java:82) >>> at >>> org.elasticsearch.search.aggregations.InternalAggregations.reduce(InternalAggregations.java:146) >>> at >>> org.elasticsearch.search.aggregations.bucket.terms.InternalTerms$Bucket.reduce(InternalTerms.java:77) >>> at >>> org.elasticsearch.search.aggregations.bucket.terms.InternalTerms.reduce(InternalTerms.java:157) >>> at >>> org.elasticsearch.search.aggregations.bucket.terms.InternalTerms.reduce(InternalTerms.java:37) >>> at >>> org.elasticsearch.search.aggregations.InternalAggregations.reduce(InternalAggregations.java:146) >>> at >>> org.elasticsearch.search.controller.SearchPhaseController.merge(SearchPhaseController.java:386) >>> at >>> org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.innerFinishHim(TransportSearchQueryThenFetchAction.java:152) >>> at >>> org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.finishHim(TransportSearchQueryThenFetchAction.java:139) >>> ... 6 more >>> >>> >>> Here are the gists used to create the data: >>> >>> - mapping : https://gist.github.com/stephlag/f9402c699374438c3ede >>> - data: https://gist.github.com/stephlag/ecb5b2dc384a3f07602d >>> - queries: https://gist.github.com/stephlag/7ad8edf1ab6b757be3b3 >>> >>> >>> >>> Le vendredi 23 mai 2014 18:05:18 UTC+2, [email protected] a écrit : >>> >>>> Thank you >>>> I see this pull request is now merged on the 1.3 branch so I will try >>>> this feature to see if it fits our needs. >>>> >>>> Le vendredi 23 mai 2014 15:49:51 UTC+2, Adrien Grand a écrit : >>>>> >>>>> You might want to do the innermost aggregation using the _uid field >>>>> instead of the _id field since the latter is not indexed by default. The >>>>> next version of Elasticsearch will feature a new aggregation called >>>>> top_hits (https://github.com/elasticsearch/elasticsearch/pull/6124) >>>>> that will allow to get the top hits per bucket. I think this is what you >>>>> are looking for? >>>>> >>>>> >>>>> On Fri, May 23, 2014 at 3:26 PM, <[email protected]> wrote: >>>>> >>>>>> Hello David, >>>>>> >>>>>> The query you gave me is correct, I don't have the parsing error >>>>>> anymore. >>>>>> >>>>>> Unfortunately, it does not give the result I expected. >>>>>> What I'm trying to get is a minimum price for each of the products, >>>>>> which is an aggregation for each of the products retrieved from the >>>>>> query. >>>>>> >>>>>> Do you have any advice on how to achieve this ? >>>>>> >>>>>> Thank you >>>>>> >>>>>> Le vendredi 23 mai 2014 14:52:23 UTC+2, David Pilato a écrit : >>>>>>> >>>>>>> I think your syntax is incorrect here. It should be something like: >>>>>>> >>>>>>> >>>>>>> GET /products/_search >>>>>>> { >>>>>>> "query": { >>>>>>> "match_all": {} >>>>>>> }, >>>>>>> "aggs": { >>>>>>> "offers": { >>>>>>> "nested": { >>>>>>> "path": "offers" >>>>>>> }, >>>>>>> "aggs": { >>>>>>> "min_price": { >>>>>>> "min": { >>>>>>> "field": "offers.price" >>>>>>> } >>>>>>> }, >>>>>>> "offers_to_product": { >>>>>>> "reverse_nested": { >>>>>>> "path": "offers" >>>>>>> }, >>>>>>> "aggs": { >>>>>>> "productId_per_offer": { >>>>>>> "terms": { >>>>>>> "field": "id" >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> Not tested though. >>>>>>> >>>>>>> Note that offers_to_product is an aggs at the same level as >>>>>>> min_price. >>>>>>> >>>>>>> -- >>>>>>> *David Pilato* | *Technical Advocate* | *Elasticsearch.com* >>>>>>> @dadoonet <https://twitter.com/dadoonet> | @elasticsearchfr >>>>>>> <https://twitter.com/elasticsearchfr> >>>>>>> >>>>>>> >>>>>>> Le 23 mai 2014 à 14:35:19, [email protected] ([email protected]) a >>>>>>> écrit: >>>>>>> >>>>>>> Hello, >>>>>>> I'm trying to use the new feature described here: >>>>>>> http://www.elasticsearch.org/guide/en/elasticsearch/referenc >>>>>>> e/current/search-aggregations-bucket-reverse-nested- >>>>>>> aggregation.html#search-aggregations-bucket-reverse- >>>>>>> nested-aggregation >>>>>>> >>>>>>> I have a structure similar to the one described in the nested >>>>>>> aggregation example : http://www.elasticsearch.org/g >>>>>>> uide/en/elasticsearch/reference/current/search-aggregations- >>>>>>> bucket-nested-aggregation.html >>>>>>> For one product I have several resellers so I want to know the >>>>>>> minimum price for each product. >>>>>>> >>>>>>> I tried this search, similar to the documentation example: >>>>>>> GET /products/_search >>>>>>> { >>>>>>> "query": { >>>>>>> "match_all": {} >>>>>>> }, >>>>>>> "aggs": { >>>>>>> "offers": { >>>>>>> "nested": { >>>>>>> "path": "offers" >>>>>>> }, >>>>>>> "aggs": { >>>>>>> "min_price": { >>>>>>> "min": { >>>>>>> "field": "offers.price" >>>>>>> } >>>>>>> }, >>>>>>> "aggs": { >>>>>>> "offers_to_product": { >>>>>>> "reverse_nested": { >>>>>>> "path": "offers" >>>>>>> }, >>>>>>> "aggs": { >>>>>>> "productId_per_offer": { >>>>>>> "terms": { >>>>>>> "field": "id" >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> I have a parsing error: >>>>>>> Caused by: org.elasticsearch.search.SearchParseException: >>>>>>> [products][4]: query[ConstantScore(*:*)],from[-1],size[-1]: Parse >>>>>>> Failure [Could not find aggregator type [offers_to_product] in [aggs]] >>>>>>> at org.elasticsearch.search.aggregations.AggregatorParsers. >>>>>>> parseAggregators(AggregatorParsers.java:128) >>>>>>> at org.elasticsearch.search.aggregations.AggregatorParsers. >>>>>>> parseAggregators(AggregatorParsers.java:120) >>>>>>> at org.elasticsearch.search.aggregations.AggregatorParsers. >>>>>>> parseAggregators(AggregatorParsers.java:77) >>>>>>> at org.elasticsearch.search.aggregations. >>>>>>> AggregationParseElement.parse(AggregationParseElement.java:60) >>>>>>> >>>>>>> What is wrong with my request? >>>>>>> >>>>>>> Thank you, >>>>>>> Stephan >>>>>>> -- >>>>>>> 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/8e02b4aa-606 >>>>>>> a-477d-bb2a-e0e02ee9a7a9%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/elasticsearch/8e02b4aa-606a-477d-bb2a-e0e02ee9a7a9%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 [email protected]. >>>>>> To view this discussion on the web visit https://groups.google.com/d/ >>>>>> msgid/elasticsearch/e24a0b30-dfea-4a2d-8591-4102fbafcc15% >>>>>> 40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/elasticsearch/e24a0b30-dfea-4a2d-8591-4102fbafcc15%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Adrien Grand >>>>> >>>> -- >>> 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] <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/elasticsearch/ffe90554-8a54-45e9-8ee9-9457ffd658bf%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/elasticsearch/ffe90554-8a54-45e9-8ee9-9457ffd658bf%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Met vriendelijke groet, >> >> Martijn van Groningen >> > > > > -- > 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/2a795c59-e8ff-40cd-a2ca-51a7a9ef5b64%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
