2017-04-26 3 views
0

Ich habe einen Index für ES bereits mit einem Mapping erstellt.Change Mapping-Eigenschaft Analysator in Elasticsearch 5

Ich muss einen Eigenschaftsanalysator ändern, um einen neuen Analysator zu verwenden. Ich konnte den neuen Analysator zum Index hinzufügen, aber als ich versuchte, die Mapping-Eigenschaft zu aktualisieren, um den neuen Analysator zu verwenden, bekam ich eine Ausnahme.

Mein Code:

var closeIndexResult = client.CloseIndex("index");  

var result = client.Map<MyEntity>(m => m.Properties(prop => 
    prop.Text(t => t.Name(n => n.FirstName).Analyzer("myNewAnalizer")) 
)); 

Result here is not successful... 

Ich verwende ES 5 und Nest.

Gibt es eine Möglichkeit, meine aktuellen Eigenschaftsdaten zu aktualisieren, um den neuen Analysator zu verwenden, ohne alle meine Daten neu zu indizieren?

Antwort

1

Nr. Mapping entscheidet, wie Ihre Daten indiziert ist, was bedeutet, alle Änderungen, um es mit Mapping-Definition aktuellen Index inkonsistent machen

Obwohl Sie neue Typen zu einem Index hinzufügen können, oder fügen Sie neue Felder zu einem Typ, können Sie nicht hinzufügen neue Analysatoren oder Änderungen an bestehenden Feldern. Wenn Sie dies tun würden, wären die Daten, die bereits indiziert wurden, falsch und Ihre Suchen würden nicht mehr wie erwartet funktionieren.

Wenn Sie Änderungen an bestehenden Feldern vornehmen müssen, sollten Sie Ihre Daten mit dem Reindex reindexing API Blick auf

https://www.elastic.co/guide/en/elasticsearch/client/net-api/master/writing-analyzers.html

Verwandte Themen