Write DSL using NEST for elasticsearch










-1















I am new to ElasticSearch. I want to write a simple aggregation query using NEST in asp.net. How to write this simple query



GET /_search

"aggs" :
"genres" :
"terms" : "field" : "genre"





I started something like this:



var response = _connection.Get<ElasticClient>().Search<JObject>(s =>





Thanks










share|improve this question




























    -1















    I am new to ElasticSearch. I want to write a simple aggregation query using NEST in asp.net. How to write this simple query



    GET /_search

    "aggs" :
    "genres" :
    "terms" : "field" : "genre"





    I started something like this:



    var response = _connection.Get<ElasticClient>().Search<JObject>(s =>





    Thanks










    share|improve this question


























      -1












      -1








      -1








      I am new to ElasticSearch. I want to write a simple aggregation query using NEST in asp.net. How to write this simple query



      GET /_search

      "aggs" :
      "genres" :
      "terms" : "field" : "genre"





      I started something like this:



      var response = _connection.Get<ElasticClient>().Search<JObject>(s =>





      Thanks










      share|improve this question
















      I am new to ElasticSearch. I want to write a simple aggregation query using NEST in asp.net. How to write this simple query



      GET /_search

      "aggs" :
      "genres" :
      "terms" : "field" : "genre"





      I started something like this:



      var response = _connection.Get<ElasticClient>().Search<JObject>(s =>





      Thanks







      c# elasticsearch nest






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 13 '18 at 19:09









      Erik Philips

      40.5k691123




      40.5k691123










      asked Nov 13 '18 at 17:01









      Mukil DeepthiMukil Deepthi

      1,25321856




      1,25321856






















          1 Answer
          1






          active

          oldest

          votes


















          0














          Started writing a comment, but maybe let's put it as an answer :)



          Here are the docs for writing aggregations using NEST syntax.



          As the example shows, for this sample aggregation:




          "aggs":
          "name_of_child_agg":
          "children":
          "type": "commits"
          ,
          "aggs":
          "average_per_child":
          "avg":
          "field": "confidenceFactor"

          ,
          "max_per_child":
          "max":
          "field": "confidenceFactor"

          ,
          "min_per_child":
          "min":
          "field": "confidenceFactor"








          you can write this NEST fluent code:



          s => s
          .Aggregations(aggs => aggs
          .Children<CommitActivity>("name_of_child_agg", child => child
          .Aggregations(childAggs => childAggs
          .Average("average_per_child", avg => avg.Field(p => p.ConfidenceFactor))
          .Max("max_per_child", avg => avg.Field(p => p.ConfidenceFactor))
          .Min("min_per_child", avg => avg.Field(p => p.ConfidenceFactor))
          )
          )
          )


          Also, I don't think you want to use JObject type as POCO, this should put some light on how to use your custom type to map c# class into elasticsearch type. The reasoning behind: to have type responsible only for "communicating" with elasticsearch, so having JObject in this role may not the best option, as it's not a type created by you and it may evolve in the future in the way you don't want.






          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/3.0/"u003ecc by-sa 3.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%2f53286083%2fwrite-dsl-using-nest-for-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














            Started writing a comment, but maybe let's put it as an answer :)



            Here are the docs for writing aggregations using NEST syntax.



            As the example shows, for this sample aggregation:




            "aggs":
            "name_of_child_agg":
            "children":
            "type": "commits"
            ,
            "aggs":
            "average_per_child":
            "avg":
            "field": "confidenceFactor"

            ,
            "max_per_child":
            "max":
            "field": "confidenceFactor"

            ,
            "min_per_child":
            "min":
            "field": "confidenceFactor"








            you can write this NEST fluent code:



            s => s
            .Aggregations(aggs => aggs
            .Children<CommitActivity>("name_of_child_agg", child => child
            .Aggregations(childAggs => childAggs
            .Average("average_per_child", avg => avg.Field(p => p.ConfidenceFactor))
            .Max("max_per_child", avg => avg.Field(p => p.ConfidenceFactor))
            .Min("min_per_child", avg => avg.Field(p => p.ConfidenceFactor))
            )
            )
            )


            Also, I don't think you want to use JObject type as POCO, this should put some light on how to use your custom type to map c# class into elasticsearch type. The reasoning behind: to have type responsible only for "communicating" with elasticsearch, so having JObject in this role may not the best option, as it's not a type created by you and it may evolve in the future in the way you don't want.






            share|improve this answer



























              0














              Started writing a comment, but maybe let's put it as an answer :)



              Here are the docs for writing aggregations using NEST syntax.



              As the example shows, for this sample aggregation:




              "aggs":
              "name_of_child_agg":
              "children":
              "type": "commits"
              ,
              "aggs":
              "average_per_child":
              "avg":
              "field": "confidenceFactor"

              ,
              "max_per_child":
              "max":
              "field": "confidenceFactor"

              ,
              "min_per_child":
              "min":
              "field": "confidenceFactor"








              you can write this NEST fluent code:



              s => s
              .Aggregations(aggs => aggs
              .Children<CommitActivity>("name_of_child_agg", child => child
              .Aggregations(childAggs => childAggs
              .Average("average_per_child", avg => avg.Field(p => p.ConfidenceFactor))
              .Max("max_per_child", avg => avg.Field(p => p.ConfidenceFactor))
              .Min("min_per_child", avg => avg.Field(p => p.ConfidenceFactor))
              )
              )
              )


              Also, I don't think you want to use JObject type as POCO, this should put some light on how to use your custom type to map c# class into elasticsearch type. The reasoning behind: to have type responsible only for "communicating" with elasticsearch, so having JObject in this role may not the best option, as it's not a type created by you and it may evolve in the future in the way you don't want.






              share|improve this answer

























                0












                0








                0







                Started writing a comment, but maybe let's put it as an answer :)



                Here are the docs for writing aggregations using NEST syntax.



                As the example shows, for this sample aggregation:




                "aggs":
                "name_of_child_agg":
                "children":
                "type": "commits"
                ,
                "aggs":
                "average_per_child":
                "avg":
                "field": "confidenceFactor"

                ,
                "max_per_child":
                "max":
                "field": "confidenceFactor"

                ,
                "min_per_child":
                "min":
                "field": "confidenceFactor"








                you can write this NEST fluent code:



                s => s
                .Aggregations(aggs => aggs
                .Children<CommitActivity>("name_of_child_agg", child => child
                .Aggregations(childAggs => childAggs
                .Average("average_per_child", avg => avg.Field(p => p.ConfidenceFactor))
                .Max("max_per_child", avg => avg.Field(p => p.ConfidenceFactor))
                .Min("min_per_child", avg => avg.Field(p => p.ConfidenceFactor))
                )
                )
                )


                Also, I don't think you want to use JObject type as POCO, this should put some light on how to use your custom type to map c# class into elasticsearch type. The reasoning behind: to have type responsible only for "communicating" with elasticsearch, so having JObject in this role may not the best option, as it's not a type created by you and it may evolve in the future in the way you don't want.






                share|improve this answer













                Started writing a comment, but maybe let's put it as an answer :)



                Here are the docs for writing aggregations using NEST syntax.



                As the example shows, for this sample aggregation:




                "aggs":
                "name_of_child_agg":
                "children":
                "type": "commits"
                ,
                "aggs":
                "average_per_child":
                "avg":
                "field": "confidenceFactor"

                ,
                "max_per_child":
                "max":
                "field": "confidenceFactor"

                ,
                "min_per_child":
                "min":
                "field": "confidenceFactor"








                you can write this NEST fluent code:



                s => s
                .Aggregations(aggs => aggs
                .Children<CommitActivity>("name_of_child_agg", child => child
                .Aggregations(childAggs => childAggs
                .Average("average_per_child", avg => avg.Field(p => p.ConfidenceFactor))
                .Max("max_per_child", avg => avg.Field(p => p.ConfidenceFactor))
                .Min("min_per_child", avg => avg.Field(p => p.ConfidenceFactor))
                )
                )
                )


                Also, I don't think you want to use JObject type as POCO, this should put some light on how to use your custom type to map c# class into elasticsearch type. The reasoning behind: to have type responsible only for "communicating" with elasticsearch, so having JObject in this role may not the best option, as it's not a type created by you and it may evolve in the future in the way you don't want.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 13 '18 at 19:07









                RobRob

                4,81222431




                4,81222431



























                    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%2f53286083%2fwrite-dsl-using-nest-for-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







                    這個網誌中的熱門文章

                    Barbados

                    How to read a connectionString WITH PROVIDER in .NET Core?

                    Node.js Script on GitHub Pages or Amazon S3