# How to pass 2 values or More to Search Using \*\*Nest\*\* in .Net

**URL:** <https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934>\
**Category:** Elasticsearch\
**Created:** [February 15, 2018, 7:25am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934 "2018-02-15T07:25:35Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![saineshwar\_bageri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/saineshwar_bageri/32/32688_2.png) [@saineshwar\_bageri](https://discuss.elastic.co/u/saineshwar_bageri)\
**Post date:** [February 15, 2018, 7:25am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/1 "2018-02-15T07:25:35Z")

</div>

How to pass 2 values or More to Search Using **Nest** in .Net

I have Tried below Code Snippet. But it wont show Accurate Result ,Please Guide Me in this.

```
string query1 = "fullname=" + applicantname + "AND district=" + "AKOLA";

var response = ConnectionToEs.EsClient().Search<Bankpayoutsummary>(s => s
    .From(0)
    .Size(50)
    .Index("bankpayoutsummary")
    .Type("data")
    .DefaultOperator(DefaultOperator.And)
    .MatchAll()
        .Query(q => q
            .QueryString(qs => qs
                .Query(query1)
            )
        )
);
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [February 15, 2018, 7:39am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/2 "2018-02-15T07:39:26Z")

</div>

Can't tell what NEST code would look like but you need to use a bool query with 2 filter clauses (or must clauses if relevancy matters).

---

<div class="post-metadata">

**Author:** ![saineshwar\_bageri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/saineshwar_bageri/32/32688_2.png) [@saineshwar\_bageri](https://discuss.elastic.co/u/saineshwar_bageri)\
**Post date:** [February 15, 2018, 7:44am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/3 "2018-02-15T07:44:08Z")

</div>

Query to Return Value passing 2 Values in Search.

```
     string applicantname = "Saineshwar";
     string district = "Mumbai City";
     var searchResponse = ConnectionToEs.EsClient().Search<Bankpayoutsummary>(s => s
            .Index("bankpayoutsummary")
            .Type("data")
            .Size(50)
            .Query(q => q
                            .Match(m => m
                                .Field(f => f.Fullname)
                                .Query(applicantname)
                            ) && q
                            .Match(m => m
                                .Field(f => f.District)
                                .Query(district)
                            )
            )
        );
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [February 15, 2018, 7:56am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/4 "2018-02-15T07:56:43Z")

</div>

Does it automatically generate a `Bool Query` behind the scene?  
I'm surprised by this code and I don't think it's correct TBH.

You can't tell here if it goes to a `filter` or `must` clause.

---

<div class="post-metadata">

**Author:** ![saineshwar\_bageri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/saineshwar_bageri/32/32688_2.png) [@saineshwar\_bageri](https://discuss.elastic.co/u/saineshwar_bageri)\
**Post date:** [February 15, 2018, 8:10am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/5 "2018-02-15T08:10:46Z")

</div>

Valid Example and its Working thanks to @dadoonet sir for giving some hits on it.

```
string applicantname = "Saineshwar";
string district = "Mumbai City";  

var searchResponse = ConnectionToEs.EsClient().Search<Bankpayoutsummary>(s => s
              .Index("bankpayoutsummary")
              .Type("data")
              .Size(50)

              .Query(q => q.Bool(b => b
                  .Must(mu => mu
                             .Match(m => m
                                  .Field(f => f.Fullname)
                                  .Query(applicantname)
                              ) && q
                              .Match(m => m
                                  .Field(f => f.District)
                                  .Query(district)
                              )
              )
              ))
          );
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [February 15, 2018, 8:28am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/6 "2018-02-15T08:28:38Z")

</div>

Note that if the District is coming from a list box or something like that, you should use a keyword type instead of text and use then a term query and move this term query in a filter clause instead of must clause. That will be more efficient (speed wise).

If you do full text search on district (like it's something entered manually by the user), then keep your solution, it's good as is.

---

<div class="post-metadata">

**Author:** ![saineshwar\_bageri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/saineshwar_bageri/32/32688_2.png) [@saineshwar\_bageri](https://discuss.elastic.co/u/saineshwar_bageri)\
**Post date:** [February 15, 2018, 8:33am UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/7 "2018-02-15T08:33:25Z")

</div>

Any reference @dadoonet sir

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [February 15, 2018, 4:40pm UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/8 "2018-02-15T16:40:06Z")

</div>

Doc here: [https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html)

---

<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:** [March 15, 2018, 4:40pm UTC](https://discuss.elastic.co/t/how-to-pass-2-values-or-more-to-search-using-nest-in-net/119934/9 "2018-03-15T16:40:08Z")

</div>

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