如何在 Elastic Search 中使用 NEST(1.8) 索引字符串数组?

How to Index Array of String using NEST(1.8) in Elastic Search?

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

这是我的映射

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这样的Field类型!

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

我将 link 向您介绍弹性文档。 array datatype

Elastic中的字段默认可以包含0个、1个或多个值,不需要指定数组。唯一的要求是数组中的所有数据都是同一类型。

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

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