elasticsearch 如何从映射中排除继承的对象属性,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 如何从映射中排除继承的对象属性,elasticsearch,nest,elasticsearch,Nest" />

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(“项目”);