我正在尝试通过elasticsearch.net(而不是nest)从c#查询elasticsearch索引。具体来说,我需要获取自特定日期以来创建的所有状态为“success”的文档。为了做到这一点,我有:
var query = new {
query = new {
match = new {
field="status",
query="success"
}
},
range = new {
?
}
};
我不知道该用什么做这个 range
部分。事实上,我甚至不确定 query
是正确的。我真的不明白在elasticsearch中,c#语法是如何Map到查询dsl的。感谢您的帮助。
谢谢您!
3条答案
按热度按时间h5qlskok1#
这样做应该:
fjaof16o2#
我真的不明白在elasticsearch中,c#语法是如何Map到查询dsl的。
通过查看提供的示例,我假设您想使用
PosData.Serializable(query)
. 在这种情况下,查询对象(不管它是什么类型)将被json序列化并发布到elasticsearch集群,而不做任何修改。使用创建对象时new {}
c#语法它在默认情况下被序列化为json,其键与此对象的属性相同。也就是物体将序列化并作为
因此,通过使用低级elasticsearch客户机,您可以创建具有几乎1:1Map的对象来查询dsl语法。您可以从elastic.co复制示例,将“:”替换为“=new”,从属性名中删除引号,基本上就是这样。
mtb9vblg3#
查询如下: