Laravel combina búsqueda de texto completo Elasticsearch

En primer lugar, instale

Ejecutar terminal, la instalación mundial elasticsearch, el siguiente comando:

brew install elasticsearch

Proceso, verá un mensaje de error que dice que no tiene Javael JDK, pero debe ser la versión 1.8 o superior, se puede instalar desde el símbolo del sistema.

brew cask install homebrew/cask-versions/java8

Después de la instalación, ejecute el comando para ver la información de versión:java -version

A continuación, brew services start elasticsearchse puede iniciar el servicio.

En segundo lugar, crear un proyecto de prueba

1, el terminal local ejecutar el comando: laravel new blogcrear un nuevo proyecto, el acceso normal a la configuración de la máquina virtual.
2, modificar la ruta web.php, como sigue:

Route::get('/', 'HomeController@index');

3, crea un controlador y método correspondiente, ejecutar el comando: php artisan make:controller HomeController
4, .envla base de datos de configuración de archivos, y crear una base de datos, e insertar los datos en la tabla.
5, crear un modelo: php artisan make:model Art
6, en HomeControllerel controlador de indexproceso de la escritura el código siguiente:

return Art::search('天')->get();

Recuerde anteriormente use App\Art;

En tercer lugar, la configuración elasticsearch

1, el terminal en la carpeta del proyecto, ejecutar el comando: composer require tamayo/laravel-scout-elastic
2, a continuación, crear un perfil: php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
3, modifique la información de archivo de configuración:

'driver' => env('SCOUT_DRIVER', 'elasticsearch'),
'elasticsearch' => [
        'index' => env('ELASTICSEARCH_INDEX', 'laravel'),
        'hosts' => [
            env('ELASTICSEARCH_HOST', 'http://localhost'),
        ],
    ],

Por supuesto, la información de configuración también se puede configurar para el .envarchivo.

4, modificación Artcódigo de modelo como sigue:

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;

class Art extends Model
{
    use Searchable;
}

5, el índice introdujo:php artisan scout:import "App\Art"

6, la prueba 1, sobre la base de la operación anterior, tenemos que actualizar su navegador, verá el milagro ha nacido:

Prueba 2, código del controlador modificado

return Art::search('今天')->get();

Los resultados son como sigue:

En este punto, la búsqueda de texto completo se ha logrado. Hay otras operaciones, tales como consultas, paginación, etc., puede hacer referencia a la Laraveldocumentación oficial. El siguiente paso es aplicar a proyectos reales, seguimiento perfecto.

referencias:
https://laravelacademy.org/post/9599.html
https://github.com/ErickTamayo/laravel-scout-elastic

Publicado 14 artículos originales · ganado elogios 1 · vistas 91

Supongo que te gusta

Origin blog.csdn.net/huangdj321/article/details/104929532
Recomendado
Clasificación