弹性搜索 - 嵌套布尔字段映射

时间:2016-01-12 07:27:16

标签: elasticsearch elasticsearch-net

当我使用NEST创建模式映射时,我的类型是从ElasticSearch获取异常。

     public class MyClass{
            {
            .....
              [ElasticProperty(Index = FieldIndexOption.NotAnalyzed,  IncludeInAll = false,Type = FieldType.Boolean)]
                    public bool IsActive { get; set; }        
            }

private static void BuildSchema(ObjectMapping mapping)
{
    var objItem = new MyClass();
        var baseItemProps = objItem.GetType().GetProperties();

        foreach (var baseProp in baseItemProps)
        {
            var basePropName = Convert.ToString(baseProp.Name);
            var baseFieldType = Convert.ToString(baseProp.PropertyType);
             mapping.Properties.Add(new KeyValuePair<PropertyNameMarker, IElasticType>(
                        new PropertyNameMarker { Name = basePropName },
                        new BooleanMapping { Index = (NonStringIndexOption)FieldIndexOption.NotAnalyzed}));

        }

}

当我使用上述请求创建映射时会出现异常。 Bool字段不是标记化的。请帮我解决这个问题?。

1 个答案:

答案 0 :(得分:0)

我找到了这个布尔类型映射的分辨率,我们需要在通过NEST映射布尔类型时指定'FieldIndexOption.No'。