Search on aggregated list of integers ElasticsearchSolr vs. ElasticSearchShow all Elasticsearch aggregation results/buckets and not just 10How to highlight nested fields in ElasticsearchFiltering nested aggregations in ElasticSearchWeighted random sampling in ElasticsearchElasticSearch: Metric aggregation and doc values / field-dataElasticsearch stats aggregation group by date on timeseriesuse maximum value of nested array for sum aggregation in elasticsearchElasticsearch aggregate to show data in two waysSum and count aggregations over Elasticsearch fields

How do you build a Dominant 7th chord?

Are the definite and indefinite integrals actually two different things? Where is the flaw in my understanding?

Creating a Master Image to roll out to 30 new Machines Licensing Issues

What's the biggest organic molecule that could have a smell?

Is there a star over my head?

I asked for a graduate student position from a professor. He replied "welcome". What does that mean?

How can a PC determine what planes a Cubic Gate is linked to?

A Little Riddle

My employer wants me to do a work of 6 months in just 2 months

Writing a love interest for my hero

extract lines from bottom until regex match

Can I disable a battery powered device by reversing half of its batteries?

Action queue manager to perform action in a FIFO fashion

Do Milankovitch Cycles fully explain climate change?

Is English tonal for some words, like "permit"?

Do ibuprofen or paracetamol cause hearing loss?

How can I maximize the impact of my charitable donations?

Why is the T-1000 humanoid?

Are scroll bars dead in 2019?

Is it possible to PIVOT on a LIKE statement

What is the standard practice in Constraint Programming modeling?

Relevance of the Resurrection

How do I improve my SXA sites Google PageSpeed Insights Score?

Does the amount of +1/+1 from *prowess* remain on a creature, even when a creature gets flipped face-down by Ixidron?



Search on aggregated list of integers Elasticsearch


Solr vs. ElasticSearchShow all Elasticsearch aggregation results/buckets and not just 10How to highlight nested fields in ElasticsearchFiltering nested aggregations in ElasticSearchWeighted random sampling in ElasticsearchElasticSearch: Metric aggregation and doc values / field-dataElasticsearch stats aggregation group by date on timeseriesuse maximum value of nested array for sum aggregation in elasticsearchElasticsearch aggregate to show data in two waysSum and count aggregations over Elasticsearch fields






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















I'm designing a new Index and have some structures in my data that could possibly cause some trouble for searching.



Given a doc type 'catalog' (to transpose it to a more general setting)



with the following data structure,




"_id": 1,
"categories": [

"category_name": "aaaa",
"nb_items": 6
,

"category_name": "bbbb",
"nb_items": 5

]
,

"_id": 2,
"categories": [

"category_name": "cccc",
"nb_items": 9
,

"category_name": "bbbb",
"nb_items": 2

]



How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ?



Would it be easier with two independant lists categories and nb_items or with such nested documents ?










share|improve this question


























  • Please clarify: How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ? using e.g.

    – Nishant Saini
    Mar 28 at 9:06











  • doc 1 is selected because( 6+5 > 10 and 5 > 4) and doc 2 is not selected because (9+2 > 10 but 2 < 4) My main issue here for my query is how to issue a condition on the sum of "nb_items" in the array

    – Vincent Chalmel
    Mar 28 at 9:38


















0















I'm designing a new Index and have some structures in my data that could possibly cause some trouble for searching.



Given a doc type 'catalog' (to transpose it to a more general setting)



with the following data structure,




"_id": 1,
"categories": [

"category_name": "aaaa",
"nb_items": 6
,

"category_name": "bbbb",
"nb_items": 5

]
,

"_id": 2,
"categories": [

"category_name": "cccc",
"nb_items": 9
,

"category_name": "bbbb",
"nb_items": 2

]



How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ?



Would it be easier with two independant lists categories and nb_items or with such nested documents ?










share|improve this question


























  • Please clarify: How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ? using e.g.

    – Nishant Saini
    Mar 28 at 9:06











  • doc 1 is selected because( 6+5 > 10 and 5 > 4) and doc 2 is not selected because (9+2 > 10 but 2 < 4) My main issue here for my query is how to issue a condition on the sum of "nb_items" in the array

    – Vincent Chalmel
    Mar 28 at 9:38














0












0








0








I'm designing a new Index and have some structures in my data that could possibly cause some trouble for searching.



Given a doc type 'catalog' (to transpose it to a more general setting)



with the following data structure,




"_id": 1,
"categories": [

"category_name": "aaaa",
"nb_items": 6
,

"category_name": "bbbb",
"nb_items": 5

]
,

"_id": 2,
"categories": [

"category_name": "cccc",
"nb_items": 9
,

"category_name": "bbbb",
"nb_items": 2

]



How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ?



Would it be easier with two independant lists categories and nb_items or with such nested documents ?










share|improve this question
















I'm designing a new Index and have some structures in my data that could possibly cause some trouble for searching.



Given a doc type 'catalog' (to transpose it to a more general setting)



with the following data structure,




"_id": 1,
"categories": [

"category_name": "aaaa",
"nb_items": 6
,

"category_name": "bbbb",
"nb_items": 5

]
,

"_id": 2,
"categories": [

"category_name": "cccc",
"nb_items": 9
,

"category_name": "bbbb",
"nb_items": 2

]



How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ?



Would it be easier with two independant lists categories and nb_items or with such nested documents ?







elasticsearch nested aggregation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 7 at 9:06







Vincent Chalmel

















asked Mar 28 at 8:39









Vincent ChalmelVincent Chalmel

3342 silver badges13 bronze badges




3342 silver badges13 bronze badges















  • Please clarify: How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ? using e.g.

    – Nishant Saini
    Mar 28 at 9:06











  • doc 1 is selected because( 6+5 > 10 and 5 > 4) and doc 2 is not selected because (9+2 > 10 but 2 < 4) My main issue here for my query is how to issue a condition on the sum of "nb_items" in the array

    – Vincent Chalmel
    Mar 28 at 9:38


















  • Please clarify: How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ? using e.g.

    – Nishant Saini
    Mar 28 at 9:06











  • doc 1 is selected because( 6+5 > 10 and 5 > 4) and doc 2 is not selected because (9+2 > 10 but 2 < 4) My main issue here for my query is how to issue a condition on the sum of "nb_items" in the array

    – Vincent Chalmel
    Mar 28 at 9:38

















Please clarify: How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ? using e.g.

– Nishant Saini
Mar 28 at 9:06





Please clarify: How to query a document whose number of items accross all category (sum of nb_items by category_names) is > 10 but nb_items in category bbbb is > 4 to retrieve only the first document ? using e.g.

– Nishant Saini
Mar 28 at 9:06













doc 1 is selected because( 6+5 > 10 and 5 > 4) and doc 2 is not selected because (9+2 > 10 but 2 < 4) My main issue here for my query is how to issue a condition on the sum of "nb_items" in the array

– Vincent Chalmel
Mar 28 at 9:38






doc 1 is selected because( 6+5 > 10 and 5 > 4) and doc 2 is not selected because (9+2 > 10 but 2 < 4) My main issue here for my query is how to issue a condition on the sum of "nb_items" in the array

– Vincent Chalmel
Mar 28 at 9:38













1 Answer
1






active

oldest

votes


















0
















This sould work. You could made the total nb condition with a script in the filter part but it would be really slow.



 
"size": 0,
"query" :
"nested" :
"path" : "categories",
"query" :
"bool" :
"must" : [

"term" : "categories.origin" : "bbbb"
,

"range" : "categories.nb_items" : "gt" : 4

]


,
"aggregations":
"totalnbbydoc":
"terms":
"field": "youriddoc",
"size": 10000
,
"aggregations":
"totalByNested":
"nested":
"path": "categories"
,
"aggregations":
"nbtotal":
"sum":
"field": "categories.nb_items"



,
"paidAmount_filter":
"bucket_selector":
"script":
"inline": "params.totalnbbydoc > 10"
,
"buckets_path":
"totalnbbydoc": "totalByNested>nbtotal"












share|improve this answer


























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );














    draft saved

    draft discarded
















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55393219%2fsearch-on-aggregated-list-of-integers-elasticsearch%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0
















    This sould work. You could made the total nb condition with a script in the filter part but it would be really slow.



     
    "size": 0,
    "query" :
    "nested" :
    "path" : "categories",
    "query" :
    "bool" :
    "must" : [

    "term" : "categories.origin" : "bbbb"
    ,

    "range" : "categories.nb_items" : "gt" : 4

    ]


    ,
    "aggregations":
    "totalnbbydoc":
    "terms":
    "field": "youriddoc",
    "size": 10000
    ,
    "aggregations":
    "totalByNested":
    "nested":
    "path": "categories"
    ,
    "aggregations":
    "nbtotal":
    "sum":
    "field": "categories.nb_items"



    ,
    "paidAmount_filter":
    "bucket_selector":
    "script":
    "inline": "params.totalnbbydoc > 10"
    ,
    "buckets_path":
    "totalnbbydoc": "totalByNested>nbtotal"












    share|improve this answer































      0
















      This sould work. You could made the total nb condition with a script in the filter part but it would be really slow.



       
      "size": 0,
      "query" :
      "nested" :
      "path" : "categories",
      "query" :
      "bool" :
      "must" : [

      "term" : "categories.origin" : "bbbb"
      ,

      "range" : "categories.nb_items" : "gt" : 4

      ]


      ,
      "aggregations":
      "totalnbbydoc":
      "terms":
      "field": "youriddoc",
      "size": 10000
      ,
      "aggregations":
      "totalByNested":
      "nested":
      "path": "categories"
      ,
      "aggregations":
      "nbtotal":
      "sum":
      "field": "categories.nb_items"



      ,
      "paidAmount_filter":
      "bucket_selector":
      "script":
      "inline": "params.totalnbbydoc > 10"
      ,
      "buckets_path":
      "totalnbbydoc": "totalByNested>nbtotal"












      share|improve this answer





























        0














        0










        0









        This sould work. You could made the total nb condition with a script in the filter part but it would be really slow.



         
        "size": 0,
        "query" :
        "nested" :
        "path" : "categories",
        "query" :
        "bool" :
        "must" : [

        "term" : "categories.origin" : "bbbb"
        ,

        "range" : "categories.nb_items" : "gt" : 4

        ]


        ,
        "aggregations":
        "totalnbbydoc":
        "terms":
        "field": "youriddoc",
        "size": 10000
        ,
        "aggregations":
        "totalByNested":
        "nested":
        "path": "categories"
        ,
        "aggregations":
        "nbtotal":
        "sum":
        "field": "categories.nb_items"



        ,
        "paidAmount_filter":
        "bucket_selector":
        "script":
        "inline": "params.totalnbbydoc > 10"
        ,
        "buckets_path":
        "totalnbbydoc": "totalByNested>nbtotal"












        share|improve this answer















        This sould work. You could made the total nb condition with a script in the filter part but it would be really slow.



         
        "size": 0,
        "query" :
        "nested" :
        "path" : "categories",
        "query" :
        "bool" :
        "must" : [

        "term" : "categories.origin" : "bbbb"
        ,

        "range" : "categories.nb_items" : "gt" : 4

        ]


        ,
        "aggregations":
        "totalnbbydoc":
        "terms":
        "field": "youriddoc",
        "size": 10000
        ,
        "aggregations":
        "totalByNested":
        "nested":
        "path": "categories"
        ,
        "aggregations":
        "nbtotal":
        "sum":
        "field": "categories.nb_items"



        ,
        "paidAmount_filter":
        "bucket_selector":
        "script":
        "inline": "params.totalnbbydoc > 10"
        ,
        "buckets_path":
        "totalnbbydoc": "totalByNested>nbtotal"













        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 28 at 11:01

























        answered Mar 28 at 10:31









        LeBigCatLeBigCat

        7114 silver badges12 bronze badges




        7114 silver badges12 bronze badges





















            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







            Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.




















            draft saved

            draft discarded















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid …


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55393219%2fsearch-on-aggregated-list-of-integers-elasticsearch%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

            155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

            Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?