elasticsearch 如何从映射中排除继承的对象属性
我正在尝试为如下所示的对象设置映射:elasticsearch 如何从映射中排除继承的对象属性,elasticsearch,nest,elasticsearch,Nest,我正在尝试为如下所示的对象设置映射: class TestObject { public long TestID { get; set; } [ElasticProperty(Type = FieldType.Object)] public Dictionary<long, List<DateTime>> Items { get; set; } } { "query_string": { "query": "[2015-
class TestObject
{
public long TestID { get; set; }
[ElasticProperty(Type = FieldType.Object)]
public Dictionary<long, List<DateTime>> Items { get; set; }
}
{
"query_string": {
"query": "[2015-06-03T00:00:00.000 TO 2015-06-05T23:59:59.999]",
"fields": [
"items.*"
]
}
}
我得到以下映射结果:
{
"mappings": {
"testobject": {
"properties": {
"items": {
"properties": {
"comparer": {
"type": "object"
},
"count": {
"type": "integer"
},
"item": {
"type": "date",
"format": "dateOptionalTime"
},
"keys": {
"properties": {
"count": {
"type": "integer"
}
}
},
"values": {
"properties": {
"count": {
"type": "integer"
}
}
}
}
},
"testID": {
"type": "long"
}
}
}
}
当我想进行这样的搜索时,这会成为一个问题:
class TestObject
{
public long TestID { get; set; }
[ElasticProperty(Type = FieldType.Object)]
public Dictionary<long, List<DateTime>> Items { get; set; }
}
{
"query_string": {
"query": "[2015-06-03T00:00:00.000 TO 2015-06-05T23:59:59.999]",
"fields": [
"items.*"
]
}
}
这会导致异常,我想这是因为items对象中的所有字段都不是同一类型的。这种类型的搜索的正确映射是什么?我可以通过使用以下映射来解决这个问题:
this.Client.Map<TestObject>(m => m.MapFromAttributes())
.Properties(p => p
.Object<Dictionary<long, List<DateTime>>>(o => o.Name("items")));
this.Client.Map(m=>m.MapFromAttributes())
.Properties(p=>p
.Object(o=>o.Name(“项目”);