我对.net中的elasticsearch客户端进行了一项小型研究,发现NEST是对此问题最受支持的解决方案之一。
我正在查看Nest的文档,但我找不到从查询输出原始json并避免将序列化为对象的方法,因为我在前端使用了angularJs,所以我不想重载该过程通过一些不必要的步骤将信息发送给客户端。
......而且我还想知道如何覆盖序列化过程?
我发现NEST使用Json.NET,我想为servicestack json serielizer更改它。
谢谢!
嗨,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作为字符串的原始响应返回给您的字符串)
.Result
request 可以是一个对象或字符串,所以如果您对内部json序列化没问题,则直接通过searchDescriptor
request