2016-05-26 8 views
2

Ich möchte String Array in der elastischen Suche mit NEST (1.8) C# indexieren.Wie Index Array von String mit NEST (1.8) in der elastischen Suche?

Hier ist meine Mapping

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; } 

    } 
} 

Ich möchte dieses Feld als String Array indizieren.

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

Aber es gibt keinen Feldtyp wie Array in ElasticProperty!

Also, welche FieldType sollte ich verwenden oder andere Optionen, um String Array-Daten zu indizieren?

Antwort

2

Ich werde Sie auf die elastische Dokumentation dafür verlinken. array datatype

Ein Feld in Elastic kann standardmäßig null, einen oder mehrere Werte enthalten, sodass kein Array angegeben werden muss. Einzige Voraussetzung ist, dass alle Daten im Array vom selben Typ sind.

Um ein Array zu indizieren, geben Sie Data als Zeichenfolge in Elastic an und übergeben bei der Indizierung einfach ein Array mit Zeichenfolge. Elastic indiziert es als JSON-Array.

Nach dem von Ihnen geposteten Code zu urteilen, sollte dies dazu dienen, ein Array von Strings auf Data zu indizieren.

+2

Ok! Ich habs! Ich danke dir sehr! –