Simple match query to C# Nest

Dipesh picture Dipesh · Feb 22, 2016 · Viewed 8.6k times · Source

I new to Elasticsearch I have cURL

GET /index/type/_search
{
    "query": {
        "match": {
            "TextID": "WT"
        }
    }
}

I want to convert it to lambda expression in C# . I managed to build some code but it is throwing runtime exception.

var searchQID = client.Search<string>(sd => sd
                     .Index("index")
                     .Type("type")
                     .Size(10000)
                     .Query(q => q
                        .Match(m => m.OnField("TextID").Query("WT")
                        )));

Please help.

Answer

Rob picture Rob · Feb 22, 2016

Create a class to represent your document stored in elasticsearch, and use it as generic argument in the Search method.

public class Document
{
    public string TextID { get; set; }
}

var searchResponse = client.Search<Document>(sd => sd
    .Index("index")
    .Type("type")
    .Size(10000)
    .Query(q => q
        .Match(m => m.Field("TextID").Query("WT")
        )));