如何打印SearchRequest

时间:2016-08-16 16:51:01

标签: nest elasticsearch-net

我正在尝试验证过滤器生成逻辑,所以我有一个SearchRequest实例,但是如何获取它的String表示?

我没有SearchResponse,只有SearchRequest,因为我只是在我的测试中捕获它。

This无法编译“无法从NestSearchRequest转换”到byte []。 This也不起作用,Nest中没有Client类,ElasticClient没有Seri​​alizer属性(Nest 1.6.0 / Elasticsearch 1.6.1)。

1 个答案:

答案 0 :(得分:1)

以下是使用NEST 1.6.0获取查询的json表示的完整示例

void Main()
{
    var client = new ElasticClient(connection: new InMemoryConnection());

    var query = Query<Document>.Match(m => m
        .OnField(f => f.Name)
        .Query("Match This Name")
    );

    var json = Encoding.UTF8.GetString(client.Serializer.Serialize(query));

    Console.WriteLine(json);
}

public class Document
{
    public string Name { get; set; }
}

将以下内容打印到控制台

{
  "match": {
    "name": {
      "query": "Match This Name"
    }
  }
}