elasticsearch ElasticSearch&;NEST 6.x:将复杂对象映射到字符串
我试图在elasticsearch中设置一个索引,但遇到了一个关于子对象的问题 鉴于以下情况:
elasticsearch ElasticSearch&;NEST 6.x:将复杂对象映射到字符串,
elasticsearch,nest,elasticsearch-6,
elasticsearch,Nest,Elasticsearch 6,我试图在elasticsearch中设置一个索引,但遇到了一个关于子对象的问题 鉴于以下情况: public class VersionNo { public string Major { get; set; } public string Minor { get; set; } public string Build { get; set; } public string Revision { get; set; } public override s
public class VersionNo
{
public string Major { get; set; }
public string Minor { get; set; }
public string Build { get; set; }
public string Revision { get; set; }
public override string ToString()
{
return $"{Major}_{Minor}_{Build}_{Revision}";
}
}
public class Workflow
{
public string Id { get; set; }
public string Name { get; set; }
public VersionNo VersionNo { get; set; }
}
如何为Workflow.VersionNo构建一个流畅的映射,使索引以“Major.Minor.Build.Revision”结尾?在下面的示例中,我不知道如何设置“versionNo”以正确组合子字段
.Mappings(ms => ms
.Map<Workflow>(m => m
.Properties(props => props
.Text(t => t
.Name("name")
)
.Text(t => t
.Name("versionNo")
)
.Text(t => t
.Name("id")
)
)
)
)
.Mappings(ms=>ms
.Map(m=>m
.Properties(props=>props
.Text(t=>t
.姓名(“姓名”)
)
.Text(t=>t
.名称(“版本号”)
)
.Text(t=>t
.姓名(“id”)
)
)
)
)
您需要告诉NEST如何序列化VersionNo
,以便将该类型的实例序列化为字符串。最直接的方法是
VersionNo
编写一个函数,它知道如何将VersionNo
序列化为字符串值,以及如何将字符串值读入VersionNo
或者,您可以在
VersionNo
上定义一个字符串属性,该属性将值连接为重写的ToString()
方法。除了主要
、次要
、构建
和修订
属性外,还可以在Elasticsearch中映射此属性。使用这种方法,您可以搜索任何属性,因为每个属性都将被索引