ElasticController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?php
  2. namespace App\Http\Admin;
  3. use Txj\Elastic\Facades\ES;
  4. use GuzzleHttp\Client;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Support\Facades\Request;
  7. class ElasticController extends AdminBaseController
  8. {
  9. protected ?Client $curl = null;
  10. public function __construct()
  11. {
  12. parent::__construct();
  13. $this->setWebsite(__NAMESPACE__);
  14. $this->isLoginJson();
  15. $this->curl = new Client();
  16. }
  17. /**
  18. * @return JsonResponse
  19. */
  20. public function ping()
  21. {
  22. $info = ES::client()->ping();
  23. return responseMessage(1002, '', $info);
  24. }
  25. public function clusterInfo()
  26. {
  27. $info = ES::client()->info();
  28. return responseMessage(1002, '', $info);
  29. }
  30. public function clusterHealth()
  31. {
  32. $info = ES::client()->cluster()->health();
  33. return responseMessage(1002, '', $info);
  34. }
  35. public function clusterSettings()
  36. {
  37. $info = ES::client()->cluster()->getSettings();
  38. return responseMessage(1002, '', $info);
  39. }
  40. public function catIndices()
  41. {
  42. $params = Request::all();
  43. $list = ES::client()->cat()->indices($params);
  44. foreach ($list as $key => $row){
  45. $info = ES::client()->indices()->getAlias(['index' => $row['index']]);
  46. $list[$key]['aliases'] = array_keys($info[$row['index']]['aliases']);
  47. }
  48. return responseMessage(1002, '', $list);
  49. }
  50. public function indexGetAlias()
  51. {
  52. $index = Request::input('index');
  53. if (empty($index)) {
  54. return responseMessage(2001, '参数错误!');
  55. }
  56. $info = ES::client()->indices()->getAlias(['index' => $index]);
  57. return responseMessage(1002, '', $info);
  58. }
  59. public function indexAddAlias()
  60. {
  61. $index = Request::input('index');
  62. $alias = Request::input('alias');
  63. if (empty($index) || empty($alias)) {
  64. return responseMessage(2001, '参数错误!');
  65. }
  66. $info = ES::client()->indices()->putAlias(['index' => $index, 'name' => $alias]);
  67. return responseMessage(1002, '', $info);
  68. }
  69. public function indexDeleteAlias()
  70. {
  71. $index = Request::input('index');
  72. $alias = Request::input('alias');
  73. if (empty($index) || empty($alias)) {
  74. return responseMessage(2001, '参数错误!');
  75. }
  76. $info = ES::client()->indices()->deleteAlias(['index' => $index, 'name' => $alias]);
  77. return responseMessage(1002, '', $info);
  78. }
  79. public function indexDelete()
  80. {
  81. $index = Request::input('index');
  82. if (empty($index)) {
  83. return responseMessage(2001, '参数错误!');
  84. }
  85. $info = ES::client()->indices()->delete(['index' => $index]);
  86. return responseMessage(1002, '', $info);
  87. }
  88. public function indexCreate()
  89. {
  90. $index = Request::input('index');
  91. if (empty($index)) {
  92. return responseMessage(2001, '参数错误!');
  93. }
  94. $info = ES::client()->indices()->create();
  95. return responseMessage(1002, '', $info);
  96. }
  97. public function indexStats()
  98. {
  99. $index = Request::input('index');
  100. if (empty($index)) {
  101. return responseMessage(2001, '参数错误!');
  102. }
  103. $info = ES::client()->indices()->stats(['index' => $index]);
  104. return responseMessage(1002, '', $info);
  105. }
  106. public function indexOpen()
  107. {
  108. $index = Request::input('index');
  109. if (empty($index)) {
  110. return responseMessage(2001, '参数错误!');
  111. }
  112. $info = ES::client()->indices()->open(['index' => $index]);
  113. return responseMessage(1002, '', $info);
  114. }
  115. public function indexClose()
  116. {
  117. $index = Request::input('index');
  118. if (empty($index)) {
  119. return responseMessage(2001, '参数错误!');
  120. }
  121. $info = ES::client()->indices()->close(['index' => $index]);
  122. return responseMessage(1002, '', $info);
  123. }
  124. public function indexRefresh()
  125. {
  126. $index = Request::input('index');
  127. if (empty($index)) {
  128. return responseMessage(2001, '参数错误!');
  129. }
  130. $info = ES::client()->indices()->refresh(['index' => $index]);
  131. return responseMessage(1002, '', $info);
  132. }
  133. public function indexFlush()
  134. {
  135. $index = Request::input('index');
  136. if (empty($index)) {
  137. return responseMessage(2001, '参数错误!');
  138. }
  139. $info = ES::client()->indices()->flush(['index' => $index]);
  140. return responseMessage(1002, '', $info);
  141. }
  142. public function indexPutSettings()
  143. {
  144. $index = Request::input('index');
  145. if (empty($index)) {
  146. return responseMessage(2001, '参数错误!');
  147. }
  148. $body = Request::input('body');
  149. if (empty($body)) {
  150. return responseMessage(2001, '参数错误!');
  151. }
  152. $info = ES::client()->indices()->putSettings([
  153. 'index' => $index,
  154. 'body' => $body
  155. ]);
  156. return responseMessage(1002, '', $info);
  157. }
  158. public function catNodes()
  159. {
  160. $h = Request::input('h');
  161. $params = [];
  162. if ($h) {
  163. $params = ['h' => $h];
  164. }
  165. $info = ES::client()->cat()->nodes($params);
  166. return responseMessage(1002, '', $info);
  167. }
  168. }