Die meisten Vorgänge in Elasticsearch erfolgen über entsprechende Aktionen, die im Aktionspaket enthalten sind. Seine Struktur ist in der folgenden Abbildung dargestellt:
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
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:
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.
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
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!