当前位置: 首页 > 面试题库 >

从Nest客户端elasticsearch2.3序列化查询

翟浩穰
2023-03-14
问题内容

自将我的Nest客户端升级到2.2.1之后,我无法看到要提交给我的elasticsearch客户端(现在为2.3.0版)的查询。我曾经用这条线:

string searchJson = Encoding.UTF8.GetString(client.Serializer.Serialize(myQueryHere));

但是,此方法现在返回void而不是它以前使用的JSON。ConnectionStatus也不存在,所以我再也看不到我发送的json了,有人知道吗?CallDetails.RequestBodyInBytes可用,但返回null。


问题答案:

在连接上查看NEST 2.x的文档。除非您CallDetails.RequestBodyInBytes将其null设置.DisableDirectStreaming()ConnectionSettings,否则将被传递给ElasticClient

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

var client = new ElasticClient(settings);

现在,请求和响应字节的副本将在响应CallDetails上公开

var response = client.Search<Document>();

var requestJson = Encoding.UTF8.GetString(response.CallDetails.RequestBodyInBytes);
var responseJson = Encoding.UTF8.GetString(response.CallDetails.ResponseBodyInBytes);

在开发过程中,注销所有请求和响应可能会很有用。



 类似资料:
  • 我正在使用官方的Elasticsearch Java客户端。它工作得很好,但不幸的是,它的对象没有实现可序列化的接口。我特别需要序列化QueryBuilder的实例。 我发现了两种使用客户端序列化对象的方法。其中之一就是使用QueryBuilder。writeTo()。另一个是使用: 但是我找不到如何在这两种情况下反序列化对象。 我也不确定这是否是解决这项任务的最佳方式。

  • 问题内容: 给定以下JSON Date表示形式: 您如何将其反序列化为JavaScript Date类型的形式? 我尝试使用MS AJAX JavaScrioptSerializer,如下所示: 但是,我得到的只是文字字符串日期。 问题答案: 如果您知道该字符串绝对是我更喜欢这样做的日期:

  • 问题内容: 我正在通过ElasticSearch NEST C#客户端运行一个简单的查询。通过http运行相同的查询时收到结果,但是从客户端返回的文档数量为零。 这就是我填充数据集的方式: 此POST请求返回JSON结果: 这是我没有返回任何代码的代码。 我想念什么?提前致谢 .. 问题答案: NEST尝试猜测类型和索引名称,在您的情况下,它将使用/ blog / blogentries 因为您告

  • 问题内容: 我开始四处寻找搜索引擎,经过一番阅读后,我决定使用ElasticSearch(这是非常了不起的:)),我的项目在C#中,所以我四处寻找客户端并开始使用NEST,一切都很简单,但是我搜索部分有些混乱。 我想搜索 特定类型的 所有字段 ,然后 输入 以下代码: 我看到许多字符串查询搜索已被弃用,并想确保上面的方法是正确的方式(上面未标记为已弃用…)对于一个简单的任务来说也有点长,所以也许有

  • 问题内容: 在使用Nest构建我的Elasticsearch查询时,我希望能够看到发送到Elasticsearch的JSON版本。这可能吗?我想是某种解串器。 这是我的后续问题的信息: 问题答案: 对。您可以像这样使用ElasticClient公开的序列化器: 您也可以直接使用Newtonsoft或任何JSON库来序列化查询对象。不过,在ElasticClient中使用序列化器(本质上是包装New

  • 我正在尝试将来自java应用程序的消息排入jms队列(weblogic)。 当我调用getInitalContext()方法时,它工作得很好。我了解了背景。但在尝试使用上下文获取连接工厂时,会出现以下错误: 查看Weblogic控制台,JNDI树我有以下内容: JMS: ConnectionFactory: name: bfred1cf class Name:weblogic.rmi.cluste