Elasticsearch.Net和NEST,IGetResponse来记录POCO?

时间:2018-05-09 14:23:22

标签: c# elasticsearch nest

我正在使用client.Get<MyDocument>(getRequest)语法从Elasticsearch检索文档,但是我检索的IGetResponse基本没用。它不包含我想要的文档的字段,基本上只告诉我.Get成功(包括我想要的文档的ID)

这是我的代码:

TypeName typeName = TypeName.From<MyDocument>();
GetRequest request = new GetRequest(Index, typeName, new Id("R" + id));

// I can't get any of the fields I want from this object:
IGetResponse<MyDocument> result = Client.Get<MyDocument>(request);

我的问题是,我是否需要以某种方式将IGetResponse<MyDocument>投射到MyDocument?我在这里缺少一些步骤吗?

编辑: P.S。:result.Foundtrue所以它肯定能成功获取文件

2 个答案:

答案 0 :(得分:0)

想出来:我想要的IGetResponse<MyDocument>上的属性是Source。它是实际的文档对象。

例如:

IGetResponse<MyDocument> result = Client.Get<MyDocument>(request);
if (result.Found)
{
    MyDocument myDocument = result.Source;
}

答案 1 :(得分:0)

来自文档:

Get()调用返回一个IGetResponse,它保存所请求的文档以及从Elasticsearch返回的其他元数据。

response.Source持有该文件。