elasticsearch 字典的嵌套映射<;字符串,对象>;
我正在尝试使用NEST,但不知道如何与这个类一起使用它
elasticsearch 字典的嵌套映射<;字符串,对象>;,
elasticsearch,nest,
elasticsearch,Nest,我正在尝试使用NEST,但不知道如何与这个类一起使用它 公共类度量{ 公共日期时间时间戳{get;set;} 公共字典度量{get;set;} } 如何将新的fluent映射用于这样的类 我计划使用我喜欢的: var-measurements=newdictionary(); 测量[“访问”]=1; 测量[“url”]=新字符串[]{“/help”,“/about”}; connection.Index(新度量(){ 时间戳=DateTime.UtcNow, 测量=测量 }); 是否可以针对
公共类度量{
公共日期时间时间戳{get;set;}
公共字典度量{get;set;}
}
如何将新的fluent映射用于这样的类
我计划使用我喜欢的:
var-measurements=newdictionary();
测量[“访问”]=1;
测量[“url”]=新字符串[]{“/help”,“/about”};
connection.Index(新度量(){
时间戳=DateTime.UtcNow,
测量=测量
});
是否可以针对字典编写查询?如果我想用一个名为“访问”的mesurenemt来获取昨天的所有指标,那会是什么样子?您没有
来使用映射,在这种情况下,您可以很好地依赖elasticsearch的无模式特性
json序列化程序会将其写成:
{
"timestamp" : "[datestring]",
"measurement" : {
"visits" : 1,
"url" : [ "/help", "/about"]
}
}
您可以使用NEST查询“measurement.visions”字段是否存在
var result=client.Search(s=>s
.从(0)
.尺寸(10)
.Filter(Filter=>Filter
.存在(“测量.访问”)
)
);
结果。文档
现在保存前10个指标,并在度量
字典中输入访问
如果确实希望使用新的fluent映射显式映射该字典中的可能键:
var result=client.MapFluent(m=>m
.Properties(props=>props
.Object(s=>s)
.Name(p=>p.Measurement)
.Properties(pprops=>pprops
.Number(ps=>ps
.姓名(“访问”)
.Type(NumberType.@integer)
)
.String(ps=>ps
.名称(“url”)
.Index(FieldIndexOption.not_分析))
)
)
)
)
);
请记住,我们没有使用此映射关闭动态映射,因此您仍然可以将其他键插入词典,而不会打乱elasticsearch。只有现在elasticsearch才知道访问量是一个实际的整数,我们不想分析url值
由于我们没有使用任何类型化访问器(将.Name()调用类型化为Metric
)。Object
也可以是。Object