我的问题很简单。我可以在邮递员中写一个非常棒的查询;
POST:localhost:9200 / logstash-2017.08.28 / _search?pretty = true
{
"query":{
"match":{
"level":"Error"
}
}
}
但是我必须使用嵌套框架在C#代码中使用这个东西。但我不能这样做,你可以帮助我吗?
var response = EsClient().Search<DocumentAttributes>(s => s
.Index("logstash-2017.09.18")
.Type("json")
.Query(q => q
.Term(p => p.level, "Error")));
//.Query(q => q.Raw(@"level:Error")));
// .Type("type").Query(q => q.Raw(@"{""match_all"":{}}")));
我如何通过撰写查询或使用字段来写下来?
答案 0 :(得分:2)
您的查询不一样。对于json
查询,您指定了以下路径localhost:9200/logstash-2017.08.28/_search?pretty=true
,这意味着您将搜索索引logstash-2017.08.28
中的所有文档。
让我们看一下使用NEST编写的查询中的内容。
Index
方法意味着您要搜索给定索引中的所有文档Type
方法意味着您将查询给定索引中具有给定类型的所有文档。在您的情况下,类型为json
。所以Type
方法用于定义您要搜索的文档类型。因此,您的查询之间的区别在于,在第一种情况下,您要查询索引中的所有文档,但在第二种情况下,您要查询索引中类型为json
的所有文档。