如何从NEST Elasticsearch查询中"传递"原始json响应?

 mobiledu2502923487 发布于 2022-12-13 07:40

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

以前类似的问题现在已经过时了 - 在ElasticSearch NEST查询中返回Raw Json

谢谢

1 个回答
  • 这对于希望在撰写本文时在较新版本的NEST v2.3中实现相同功能的读者有所帮助。如果您只想要响应,则只需ElasticLowLevelClient根据doc使用,即可:

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

    但是,如果您还希望输入结果,那么它会涉及到更多。你需要调用DisableDirectStreaming()的设置对象,然后检索来自原始JSON response.ApiCall.ResponseBodyInBytes作为展示在这里。

    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);
    }
    

    2022-12-13 07:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有