# Convert DSL Query to NEST.net

**URL:** <https://discuss.elastic.co/t/convert-dsl-query-to-nest-net/93527>\
**Category:** Elasticsearch\
**Created:** [July 18, 2017, 8:30am UTC](https://discuss.elastic.co/t/convert-dsl-query-to-nest-net/93527 "2017-07-18T08:30:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![takcy1980](https://avatars.discourse-cdn.com/v4/letter/t/e47774/32.png) [@takcy1980](https://discuss.elastic.co/u/takcy1980)\
**Post date:** [July 18, 2017, 8:30am UTC](https://discuss.elastic.co/t/convert-dsl-query-to-nest-net/93527/1 "2017-07-18T08:30:49Z")

</div>

How can I translate the below query, so it is matching [Nest.net](http://Nest.net)

GET /consolidated-capacity/\_search  
{  
"query": {  
"constant\_score" : {  
"filter" : {  
"bool" : {  
"must" : [

```
             { "term" : { "Week.keyword": "1712" } },
             { "term" : { "CountAsFailure.keyword": "TRUE" } },
             { "term" : { "Weekday.keyword": "1" } }

             
                ]
            }
        }
    }
}

```

}

---

<div class="post-metadata">

**Author:** ![forloop](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/forloop/32/9021_2.png) [@forloop](https://discuss.elastic.co/u/forloop)\
**Post date:** [July 18, 2017, 11:53am UTC](https://discuss.elastic.co/t/convert-dsl-query-to-nest-net/93527/2 "2017-07-18T11:53:44Z")

</div>

What have you tried so far, maybe I can help with where you're having trouble. Did you see the NEST docs on [constant score query](https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/constant-score-query-usage.html)?

---

<div class="post-metadata">

**Author:** ![takcy1980](https://avatars.discourse-cdn.com/v4/letter/t/e47774/32.png) [@takcy1980](https://discuss.elastic.co/u/takcy1980)\
**Post date:** [July 18, 2017, 12:18pm UTC](https://discuss.elastic.co/t/convert-dsl-query-to-nest-net/93527/3 "2017-07-18T12:18:43Z")

</div>

I tried something like this. But coul dnot figure out how to add three terms and passing the value

var response =  
elasticClient.Count(  
s =\>  
s.Index("consolidated-capacity")  
.Type("StageCapacity")  
.Query(  
q =\>  
q.ConstantScore(  
f =\>  
f.Filter(  
b =\>  
b.Bool(  
m =\>  
m.Must(  
t1 =\>  
t1.Term(  
c =\> c  
.Field(p =\> p  
.Week))))))));

---

<div class="post-metadata">

**Author:** ![forloop](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/forloop/32/9021_2.png) [@forloop](https://discuss.elastic.co/u/forloop)\
**Post date:** [July 28, 2017, 7:25am UTC](https://discuss.elastic.co/t/convert-dsl-query-to-nest-net/93527/4 "2017-07-28T07:25:05Z")

</div>

You're close. the `Bool()` `Must()` takes a `params Func<QueryContainerDescriptor<T>, QueryContainer>[]` so can accept multiple lambda expressions

```
client.Search<StageCapacity>(s => s
    .Index("consolidated-capacity")
    .Type("StageCapacity")
    .Query(q => q
        .ConstantScore(cs => cs
            .Filter(f => f
                .Bool(b => b
                    .Must(
                        m => m.Term("Week.keyword", "1712"),
                        m => m.Term("CountAsFailure.keyword", "TRUE"),
                        m => m.Term("Week.keyword", "1")
                    )
                )
            )
        )
    )
);

```

or the shorthand

```
client.Search<StageCapacity>(s => s
    .Index("consolidated-capacity")
    .Type("StageCapacity")
    .Query(q => q
        .ConstantScore(cs => cs
            .Filter(f => f
                .Term("Week.keyword", "1712") && f
                .Term("CountAsFailure.keyword", "TRUE") && f
                .Term("Week.keyword", "1")
            )
        )
    )
);
```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [August 25, 2017, 7:25am UTC](https://discuss.elastic.co/t/convert-dsl-query-to-nest-net/93527/5 "2017-08-25T07:25:12Z")

</div>

Closed on August 25, 2017, 7:25am UTC

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
