Kebanyakan operasi dalam elasticsearch adalah melalui tindakan yang sepadan, yang terdapat dalam pakej tindakan. Strukturnya ditunjukkan dalam rajah di bawah:
Ditunjukkan di sini ialah tangkapan skrin separa pakej Tindakan, yang mengandungi Tindakan yang sepadan dengan pelbagai fungsi. Pakej setiap tindakan juga sangat serupa dengan indeks. Tindakan ini semuanya diwarisi daripada tindakan asas, jadi pelaksanaannya sangat serupa. Angka berikut menunjukkan hubungan pewarisan indexaction
Tindakan ini hanyalah pengganti dan tidak melaksanakan fungsi sebenar, jadi ia sangat mudah untuk dilaksanakan. Fungsi utama mereka adalah untuk menyediakan kaedah untuk mencipta respons dan permintaan baharu, sepadan dengan nama operasi yang sepadan. Ambil indexaction sebagai contoh. Rajah kaedahnya adalah seperti berikut:
Anda boleh melihat bahawa ia hanya menyediakan dua kaedah untuk membuat respons dan permintaan, dan medan NAME , ini Medan NAME akan digunakan dalam panggilan tindakan seterusnya. Fungsi yang sepadan dilaksanakan dalam transportAction yang sepadan.
Antara muka TransportAction diwarisi oleh semua tansportAction. Apabila pelanggan memanggil antara muka pelanggan yang berkaitan, pelanggan akan menghantar permintaan untuk melaksanakan transportAction. TransportAction bagi setiap fungsi melaksanakan kaedah doExecute, dan logik fungsi itu dilaksanakan dalam kaedah ini Kami tidak akan menyebutnya di sini buat masa ini.
Terdapat sekeping kod dalam analisis pelanggan:
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)
Hanya sebahagian daripada kandungan ditunjukkan di sini, di mana modul akan mengikat tindakan dan TransportAction yang sepadan. Dengan cara ini, apabila pelanggan perlu menerima permintaan, ia akan mencari contoh tansportAction yang sepadan mengikut contoh tindakan yang sepadan, dan permintaan akhir akan diproses di bawahnya.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tindakan klien java elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!