如何在弹性搜索中使用NEST(1.8)索引字符串数组?

时间:2016-05-26 07:38:37

标签: c# arrays elasticsearch indexing nest

我想使用NEST(1.8)C#在弹性搜索中索引字符串数组。

这是我的映射

using Nest;
using System;
using System.Data;

namespace ElasticSearch_Final
{
    //[ElasticType(IdProperty = "Id", Name = "indexMapping")]
    public class indexMapping
    {
        [ElasticProperty(Name = "Field1", Index = FieldIndexOption.NotAnalyzed, Type = FieldType.String, Store = true)]
        public Guid? Field1 { get; set; }

        [ElasticProperty(Name = "Field2", Index = FieldIndexOption.NotAnalyzed, Type = FieldType.String, Store = true)]
        public string Field2 { get; set; }

        [ElasticProperty(Name = "Field3", Index = FieldIndexOption.NotAnalyzed, Type = FieldType.String, Store = true)]
        public string Field3 { get; set; }

        [ElasticProperty(Name = "Field4", Index = FieldIndexOption.NotAnalyzed, Type = FieldType.String, Store = true)]
        public string Field1 { get; set; }

        [ElasticProperty(Name = "Field4", Index = FieldIndexOption.NotAnalyzed, Type = FieldType.String, Store = true)]
        public string Field1 { get; set; }

        [ElasticProperty(Name = "Data", Index = FieldIndexOption.Analyzed, Type = FieldType.String, Store = false)]
        public string[] Data { get; set; }

    }
}

我想将此字段索引为字符串数组。

 [ElasticProperty(Name = "Data", Index = FieldIndexOption.Analyzed, Type = FieldType.String, Store = false)]
            public string[] Data { get; set; }

但是ElasticProperty中没有类似Array的字段类型!

那么,我应该使用哪种FieldType或者索引字符串数组数据的其他选项?

1 个答案:

答案 0 :(得分:3)

我将把你链接到弹性文档。 array datatype

默认情况下,Elastic中的字段可以包含零个,一个或多个值,无需指定数组。唯一的要求是数组中的所有数据都是相同的类型。

因此,要索引数组,请在Elastic中将Data指定为字符串,并在索引时只传递一个字符串数组。 Elastic会将其索引为JSON数组。

根据您发布的代码判断,这应该可以用来索引数据上的字符串数组。