2016-05-31 9 views
0

Unsere C# -WebAPI-Anwendung verwendet eine ElasticSearch-Datenbank. Wir verwenden NEST2, um auf die Datenbank zuzugreifen.NEST2: So geben Sie den Datenbankindexnamen einmal an

All nest2 Abfragen im Code den Datenbankindex Namen angeben, hier ein Beispiel:

public TestQuery[] GetAllDocuments() 
{ 
    var readRecords = ec.Search<TestDocument>(s => s 
     .Index("my-index-name") 
     .Query(q => q. 
      QueryString(qs => qs.Query("*")))).Documents; 

    return readRecords.ToArray(); 
} 

Manchmal vergessen wir die Indexnamen in der Abfrage angeben ... das Problem selbst nicht sofort manifestieren wie die API funktioniert wie erwartet und alles ist in Ordnung ... nur wenn wir einen anderen Index mit einigen ähnlichen Dokumenten darin hinzufügen, sehen wir das Problem

Ist es möglich, den Index-Namen einmal für alle nach NEST2-Initialisierung anzugeben? Dabei werde ich die Belastung vermeiden erinnern, es auf jede einzelne Abfrage einfügen

Antwort

2

Sie suchen nach .DefaultIndex Methode auf ConnectionSettings.

var settings = new ConnectionSettings() 
    .DefaultIndex("defaultindex"); 

Hoffe es hilft.

+0

danke! Ich werde es morgen auf der Arbeit versuchen ... –

1

Sie sollten einen Blick auf Aliase nehmen: Index Alias

Also, wenn Sie einen neuen Index mit ähnlichen Dokumenten haben, können Sie einen Alias ​​hinzufügen Nachdem Sie es erstellt haben und in der Abfrage im Indexnamen geben Sie den Alias ​​an. Auf diese Weise können Sie 1 für mehrere Indizes mit demselben Namen abfragen. Hoffe es hilft! Wenn Sie weitere Informationen benötigen, schreiben Sie einen Kommentar.

Verwandte Themen