elasticsearch のほとんどの操作は、アクション パッケージに含まれる対応するアクションを通じて行われます。その構造は次の図に示されています。
ここに示されているのは、さまざまな機能に対応するアクションが含まれているアクション パッケージの一部のスクリーンショットです。各アクションのパッケージもインデックスとよく似ています。これらのアクションはすべて基本アクションから継承するため、実装は非常に似ています。次の図は、indexaction の継承関係を示しています。
これらのアクションは単なる代替であり、実際の関数を実装していないため、実装も非常に簡単です。それらの主な機能は、対応する操作名に対応して、新しい応答と要求を作成するためのメソッドを提供することです。 Indexaction を例にとると、そのメソッド図は次のとおりです:
#レスポンスとリクエストを作成するための 2 つのメソッドと、NAME フィールドのみが提供されていることがわかります。この NAME フィールドは後続のアクション呼び出しで使用されます。対応する関数は、対応するtransportActionに実装されます。
TransportAction インターフェイスは、すべての TansportAction に継承されます。クライアントがクライアントの関連インターフェイスを呼び出すと、クライアントは TransportAction の実行にリクエストを送信します。各関数の TransportAction は doExecute メソッドを実装しており、関数のロジックはこのメソッド内に実装されています。ここでは今のところ説明しません。対応する実装は後続の機能分析で説明します。
クライアント分析には次のようなコードがあります:
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)
ここにはコンテンツの一部のみが示されており、モジュールは対応するアクションと TransportAction をバインドします。このようにして、クライアントがリクエストを受信する必要がある場合、対応するアクション インスタンスに従って対応するtansportAction インスタンスが見つかり、最終リクエストはその下で処理されます。
以上がelasticsearch Javaクライアントアクションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。