2016-04-07 5 views
0

Derzeit verwenden wir den NEST-Client für alle Indexierungsoperationen, bei denen das "AddSortField" zum Sortieren des analysierten Felds (zusammen mit einem Sortieranalysator) verwendet wurde. Diese Option ist in 2.X nicht mehr verfügbar. Gibt es dafür Alternativen? Oder irgendwelche Empfehlungen zum Sortieren von analysierten Feldern in 2.X würden sehr geschätzt werden.Nest Client-Alternative für AddSortField in 2.x

Hinweis: Aktuelle NEST und Elasticsearch Version verwendet wird, ist 1.X

Danke,

Pavan

+0

Ich hoffe, dass [diese] (http://stackoverflow.com/questions/36425486/addsortfield-in-nest-2-upgrade/36426602#36426602) Antwort wird etwas Licht auf sie werfen. – Rob

Antwort

1

AddSortField in NEST 1.x ist nur eine bequeme Methode zum Abbilden einer Eigenschaft als multi_field mit einem sort Unterfeld, das beim Sortieren verwendet wird; Für string Felder, in denen angegeben ist, ist dieses Feld not_analyzed.

Um das gleiche in NEST 2.x zu erreichen, können Sie use fluent mapping eine Eigenschaft als multi_field abzubilden, ein sort Unterfeld Zugabe

var descriptor = new CreateIndexDescriptor("myindex") 
    .Mappings(ms => ms 
     .Map<Company>(m => m 
      .Properties(ps => ps 
       .String(s => s 
        .Name(n => n.Name) 
        // map as multi_field 
        .Fields(fs => fs 
         .String(ss => ss 
          .Name("sort") 
          .Index("sortAnalyzer") 
         ) 
        ) 
       ) 
      ) 
     ) 
    ); 

Wenn , würden Sie dann sortieren auf name.sort

var response = client.Search<Company>(s => s 
    .Query(q => q.MatchAll()) 
    .Sort(ss => ss 
     .Ascending(p => p.Name.Suffix("sort")) 
    ) 
); 
+0

Danke für die Antwort. –

+0

Keine Sorgen. Wenn es Ihre Frage beantwortet, stimmen Sie bitte ab und nehmen Sie Antwort an –