我想使用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或者索引字符串数组数据的其他选项?
答案 0 :(得分:3)
我将把你链接到弹性文档。 array datatype
默认情况下,Elastic中的字段可以包含零个,一个或多个值,无需指定数组。唯一的要求是数组中的所有数据都是相同的类型。
因此,要索引数组,请在Elastic中将Data指定为字符串,并在索引时只传递一个字符串数组。 Elastic会将其索引为JSON数组。
根据您发布的代码判断,这应该可以用来索引数据上的字符串数组。