gpt4 book ai didi

c# - 我怎样才能 "pass through"来自 NEST Elasticsearch 查询的原始 json 响应?

转载 作者:太空狗 更新时间:2023-10-29 22:37:04 25 4
gpt4 key购买 nike

我们的客户端代码直接与 elasticsearch 响应一起工作,但我想将 NEST 放在中间以进行一些安全和过滤。使用 NEST(或 elasticsearch.net)构建查询然后将原始 json 响应以最少的处理量传回我的客户端的最简单方法是什么。顺便说一句,我也在使用 ServiceStack。

以前的类似问题现在有一个过时的答案 - Returning Raw Json in ElasticSearch NEST query

谢谢

最佳答案

这是为了希望在撰写本文时希望在较新版本的 NEST v2.3 中实现相同功能的读者受益。如果您只想要响应,根据 doc,您需要做的就是使用 ElasticLowLevelClient :

var responseJson = client.Search<string>(...);

但是如果您还想要输入的结果,那么它会稍微复杂一些。您需要在设置对象上调用 DisableDirectStreaming(),然后从 response.ApiCall.ResponseBodyInBytes 中检索原始 json,如 here 所示。 .

var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
.DefaultIndex("index1")
.DisableDirectStreaming();

var response = new ElasticClient(settings)
.Search<object>(s => s.AllIndices().AllTypes().MatchAll());

if (response.ApiCall.ResponseBodyInBytes != null)
{
var responseJson = System.Text.Encoding.UTF8.GetString(response.ApiCall.ResponseBodyInBytes);
}

关于c# - 我怎样才能 "pass through"来自 NEST Elasticsearch 查询的原始 json 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26753277/

25 4 0
文章推荐: c# - 异步 lambda 并且不能将 Task.Task.List 隐式转换为 List