You are looking at documentation for an older release.
Not what you want? See the
current release documentation.
Get a documentedit
Gets a single document from Elasticsearch
By Idedit
var response = client.Get<ElasticSearchProject>(1);
Index and type are inferred but overloads still exists for full control:
var response = client.Get<ElasticSearchProject>("myindex", "mytype", 1);Handling the Get responseedit
The Get<T>() call returns an IGetResponse<T> that holds the requested document as well as other meta data returned from Elasticsearch.
response.Source holds the ElasticSearchProject with id 1.
You can also use Get<T>() to query just some fields of a single document:
Fluent DSLedit
var response = client.Get<ElasticsearchProject>(g => g
.Index("myindex")
.Type("mytype")
.Id(1)
.Fields(p=>p.Content, p=>p.Name, p=>p.Id, p=>p.DoubleValue)
);Object Initializer Syntaxedit
var request = new GetRequest("myindex", "mytype", "1")
{
Fields = new PropertyPathMarker[] { "content", "name", "id" }
};
var response = client.Get<ElasticsearchProject>(request);You can then access the fields like so:
var name = response.Fields.FieldValue<string>(p => p.Name); var id = response.Fields.FieldValue<int>(p => p.Id); var doubleValue = response.Fields.FieldValue<double>(p => p.DoubleValue);
Remember p => p.Name can also be written as "name" and NEST does not force you to
write expressions everywhere (although it is much encouraged!).