我正在使用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.Found
是true
所以它肯定能成功获取文件
答案 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持有该文件。