首页 > 其他分享 >laravel:访问es,索引和搜索(Laravel 11.15.0)

laravel:访问es,索引和搜索(Laravel 11.15.0)

时间:2024-07-11 09:34:37浏览次数:9  
标签:laravel Laravel index 11.15 response client elasticsearch id es

一,安装需要的库

1,包的地址:

https://packagist.org/packages/elasticsearch/elasticsearch

2,文档地址:

https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html

3,用composer从命令行安装

[lhdop@blog dignews]$ composer require elasticsearch/elasticsearch 

4,安装完成后查看所安装的版本:

[lhdop@blog dignews]$ composer show elasticsearch/elasticsearch
name     : elasticsearch/elasticsearch
descrip. : PHP Client for Elasticsearch
keywords : client, elastic, elasticsearch, search
versions : * v8.14.0
type     : library
license  : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
homepage : 

二,添加controller和路由

1,添加controller

php artisan make:controller UserController

2,添加路由:routes/web.php

use App\Http\Controllers\UserController;

Route::controller(UserController::class)->group(function () {
    Route::get('/user/home', 'home');
    Route::get('/user/index', 'index');
    Route::get('/user/getone', 'getone');
    Route::get('/user/search', 'search');
});

三,索引功能/搜索功能

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Elastic\Elasticsearch\ClientBuilder;

class UserController extends Controller
{

    //建立到es的连接
    private function _init_es()
    {
        $hosts = ['127.0.0.1:9200'];
        $client = ClientBuilder::create()->setHosts($hosts)->build();
        return $client;
    }
    
    //直接返回字符串
    public function home(){
         $rand_digit = rand(100,999);
         $msg = 'hello,随机数:'.$rand_digit;
        return 'Hello, World!'.$msg;
    }

     //索引
    public function index(){
     //初始化一个es
       $client = $this->_init_es();

          $id=1;
          $title = 'global world';
          $content = 'man,good,linux,python';

            $params = [
                'index' => 'article1',
                'id' => $id,
                'body' => [
                    'id' => $id,
                    'title' => $title,
                    'content' => $content,
                ],
            ];
            $rs = $client -> index($params);
          print_r($rs);
    }

    //查询
    public function getone() {
     //初始化一个es
       $client = $this->_init_es();

        $id=1;

        $params = [
            'index' => 'article1',
            //'type' => $type_name,
            'id' => $id
        ];
        $response = $client->get($params);
        //print_r($response);
        echo $response->getStatusCode(); // 200
        //echo (string) $response->getBody(); // Response body in JSON
        var_dump($response->asArray());  // response body content as array
    }

    //搜索
    public function search() {
        //初始化一个es
        $client = $this->_init_es();

       $params = [
           'index' => 'article1',
           'body'  => [
                 'query' => [
                      'match' => [
                           'content' => 'linux'
                       ]
                  ]
           ]
        ];
        $results = $client->search($params);
        //var_dump($results->asArray());  // response body content as array
        $ret = $results->asArray();
        echo json_encode($ret);
    }

}

 

四,测试效果

先索引后访问搜索地址的返回

五,查看laravel的版本:

[lhdop@blog dignews]$ php artisan --version
Laravel Framework 11.15.0

 

标签:laravel,Laravel,index,11.15,response,client,elasticsearch,id,es
From: https://www.cnblogs.com/architectforest/p/18290092

相关文章

  • laravel: 安装完后配置session使用文件而非使用数据库
    一,报错信息:laravel在安装完成后初次运行时会报错,InternalServerErrorIlluminate\Database\QueryExceptionSQLSTATE[HY000]:Generalerror:8attempttowriteareadonlydatabase(Connection:sqlite,SQL:update"sessions"set"payload"=YTozOntzOjY......
  • Laravel Excel导出功能:高效实现数据导出
    Laravel是一个功能丰富的PHPWeb开发框架,它提供了许多内置功能来简化开发过程。其中,LaravelExcel导出功能是处理数据导出任务的强大工具。通过使用Maatwebsite的LaravelExcel包,开发者可以轻松地将数据集导出为Excel文件,这对于报告生成、数据备份和用户数据下载等场景非常......
  • centos8(linux): 安装使用supervisor管理laravel队列
    一,什么是supervisorSupervisor是一个进程控制系统,它使用户能够监视和控制类unix操作系统进程。它通过提供基于配置或事件启动、停止和重新启动进程的机制,帮助管理应该在系统中连续运行的进程。对于需要控制和监视Linux或其他类unix操作系统上多个进程的状态的开发人员和系统管理......
  • 深入Laravel事件系统:创建与使用事件的指南
    Laravel的事件系统是一种强大的机制,它允许你将应用程序的行为封装成事件,然后在适当的时候触发这些事件。这不仅有助于代码的解耦,还提高了应用程序的可维护性和可扩展性。本文将详细介绍如何在Laravel中创建和使用事件,包括事件的定义、监听器的编写、事件的触发以及事件队列......
  • Laravel 宏指令(Macro)动态添加自定义方法到Laravel的核心组件中
    Laravel宏指令(Macro)在Laravel中,宏指令(Macro)是一种灵活的方式,允许您动态添加自定义方法到Laravel的核心组件中,如模型、查询构建器、集合等,以便在不改变核心代码的情况下扩展框架的功能。通过宏指令,您可以向Laravel内置的类添加自定义方法,实现更高级的功能和逻辑。福利彩......
  • 深入 Laravel 的错误处理与异常处理机制
    引言Laravel是一个优雅而强大的PHPWeb应用框架,它提供了一系列工具来帮助开发者处理应用中的错误和异常。了解Laravel的错误处理和异常处理机制对于构建健壮和用户友好的应用程序至关重要。本文将深入探讨Laravel如何实现错误和异常处理,并提供一些实际的代码示例。......
  • 深入解析 Laravel 事件系统:架构、实现与应用
    Laravel的事件系统是框架中一个强大且灵活的功能,它允许开发者在应用程序中定义和使用自定义事件和监听器。这个系统基于观察者模式,使得代码解耦和可维护性大大提高。在本文中,我们将深入探讨Laravel事件系统的工作原理、如何实现自定义事件和监听器,以及如何在实际项目中应......
  • 掌握Eloquent ORM:Laravel中的对象关系映射艺术
    掌握EloquentORM:Laravel中的对象关系映射艺术在现代Web应用开发中,数据库的操作是核心功能之一。Laravel框架提供了一个强大而优雅的ORM(对象关系映射)工具——Eloquent。Eloquent让数据库操作变得简单直观,同时保留了SQL的强大灵活性。本文将详细介绍如何在Laravel中使用Eloq......
  • laravel 数组元素按中文排序
    1、按英文排序$r=[['color'=>'b','color_zh'=>'波'],['color'=>'c','color_zh'=>'吃'],['color'=>'a','color_zh'=>'啊......
  • 计算机毕业设计Thinkphp/Laravel高校学生管理系统m4dtg+vue
    Laravel非常的简洁并且是开源的,Laravel是一个具有表现力、优雅语法的Web应用程序框架.Laravel是构建现代全栈Web应用程序的最佳选择.开发语言:php后端框架:Thinkphp/Laravel前端框架:vue.js服务器:apache数据库:mysql运行环境:phpstudy/wamp/xammp等技术路线如下:1.后......