一尘不染

在ElasticSearch NEST查询中返回Raw Json

elasticsearch

我对.net中的elasticsearch客户端进行了一项小型研究,发现NEST是对此问题最受支持的解决方案之一。

我正在查看Nest的文档,但我找不到从查询输出原始json并避免将序列化为对象的方法,因为我在前端使用了angularJs,所以我不想重载该过程通过一些不必要的步骤将信息发送给客户端。

......而且我还想知道如何覆盖序列化过程?

我发现NEST使用Json.NET,我想为servicestack json serielizer更改它。

谢谢!


阅读 525

收藏
2020-06-22

共1个答案

一尘不染

嗨,Pedro,您可以使用NEST做到这一点

var searchDescriptor = new SearchDescriptor<ElasticSearchProject>()
    .Query(q=>q.MatchAll());
var request = this._client.Serializer.Serialize(searchDescriptor);
ConnectionStatus result = this._client.Raw.SearchPost(request);
Assert.NotNull(result);
Assert.True(result.Success);
Assert.IsNotEmpty(result.Result);

这使您可以强烈地键入查询,但是将字符串(.Result这是从Elasticsearch作为字符串的原始响应返回给您的字符串)

request 可以是一个对象或字符串,所以如果您对内部json序列化没问题,则直接通过searchDescriptor

2020-06-22