ElasticSearch .net avoid DynamicDictionary
本文关键字:DynamicDictionary avoid net ElasticSearch | 更新日期: 2023-09-27 18:05:48
我的任务是为内部c#项目构建一个相当通用的ElasticSearch连接器。连接器的主要目的是从外部ElasticSearch源获取所有数据,将其转换为列-行格式并传递下去。虽然我的连接器可以做到这一切,但这是一个相当缓慢的过程,分析似乎表明,罪魁祸首是大量使用动态c#对象,由elasticsearch.net api返回。
ElasticSearch的文档。Net有一个显式警告,DynamicDictionary很慢。http://nest.azurewebsites.net/elasticsearch-net/handling-responses.html
所以我的问题是:有没有一种方法可以绕过动态字典?我完全满足于一个简单的Dict(String, Object)。我不能使用嵌套或其他技术来构建POCO,因为我之前不知道ElasticSearch的结果——我可以是任何格式,我的工作是将它传递给另一个程序。
你所引用的文档也说
如果您指定T为字符串或byte[],则响应将不经过注册的ISerializer,而只是读取并返回。
所以你可以采取字节,然后做任何你想要的,例如,用JSON解析器解析它们,提取你需要的,没有太多的开销。