Heim  >  Artikel  >  Java  >  So implementieren Sie die Elasticsearch-Java-Client-Aktion

So implementieren Sie die Elasticsearch-Java-Client-Aktion

WBOY
WBOYnach vorne
2023-05-22 08:43:501465Durchsuche

Die meisten Vorgänge in Elasticsearch erfolgen über entsprechende Aktionen, die im Aktionspaket enthalten sind. Seine Struktur ist in der folgenden Abbildung dargestellt:

So implementieren Sie die Elasticsearch-Java-Client-Aktion

Hier ist ein Teil-Screenshot des Aktionspakets zu sehen, das Aktionen enthält, die verschiedenen Funktionen entsprechen. Auch die Pakete jeder Aktion sind dem Index sehr ähnlich. Diese Aktionen erben alle von der Basisaktion, sodass ihre Implementierung sehr ähnlich ist. Die folgende Abbildung zeigt die Vererbungsbeziehung der Indexaktion

So implementieren Sie die Elasticsearch-Java-Client-Aktion

Diese Aktionen sind nur Ersatz und implementieren keine echten Funktionen, sodass sie auch sehr einfach zu implementieren sind. Ihre Hauptfunktion besteht darin, Methoden zum Erstellen neuer Antworten und Anforderungen bereitzustellen, die den entsprechenden Operationsnamen entsprechen. Nehmen Sie als Beispiel das Methodendiagramm:

So implementieren Sie die Elasticsearch-Java-Client-Aktion

Sie können sehen, dass es nur zwei neue Antwort- und Anforderungsmethoden bietet und ein Wort-NAME-Feld für nachfolgende Aktionsaufrufe verwendet wird. Mitte. Die entsprechende Funktion ist in der entsprechenden transportAction implementiert.

So implementieren Sie die Elasticsearch-Java-Client-Aktion

Die TransportAction-Schnittstelle wird von allen tansportAction geerbt. Wenn der Client die entsprechende Schnittstelle des Clients aufruft, sendet der Client die Anforderung an die Ausführung von transportAction. Die TransportAction jeder Funktion implementiert die doExecute-Methode, und die Logik der Funktion wird in dieser Methode implementiert. Wir werden sie hier vorerst nicht erwähnen. Die entsprechende Implementierung wird in der nachfolgenden Funktionsanalyse gesehen.

In der Client-Analyse gibt es einen solchen Code:

TransportAction transportAction = actions.get((ClientAction)action) Seine Funktion besteht darin, die TransportAction basierend auf der Aktion abzurufen. Weil Aktion nur ein Stellvertreter ist. Die Implementierung dieser Zuordnungen erfolgt im ActionModule, wie im folgenden Code gezeigt:

registerAction(NodesInfoAction.INSTANCE, TransportNodesInfoAction.class);
        registerAction(NodesStatsAction.INSTANCE, TransportNodesStatsAction.class);
        registerAction(NodesShutdownAction.INSTANCE, TransportNodesShutdownAction.class);
        registerAction(NodesRestartAction.INSTANCE, TransportNodesRestartAction.class);
        registerAction(NodesHotThreadsAction.INSTANCE, TransportNodesHotThreadsAction.class);
        registerAction(ClusterStatsAction.INSTANCE, TransportClusterStatsAction.class);
        registerAction(ClusterStateAction.INSTANCE, TransportClusterStateAction.class);
        registerAction(ClusterHealthAction.INSTANCE, TransportClusterHealthAction.class)

Hier wird nur ein Teil des Inhalts angezeigt, wobei das Modul die entsprechende Aktion und TransportAction bindet. Auf diese Weise findet der Client, wenn er eine Anfrage erhalten muss, die entsprechende tansportAction-Instanz entsprechend der entsprechenden Aktionsinstanz und die endgültige Anfrage wird unter dieser verarbeitet.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Elasticsearch-Java-Client-Aktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen