Laravel+scout+elasticsearch实现全文搜索

Laravel中使用elasticsearch实现全文搜索

项目中要做搜索,欲采用Laravel+Scout扩展 +elasticsearch来实现,特记录备用

elastic安装

  1. 官网下载5.6.4版本zip文件,解压到目标目录,运行需要Java1.8运行环境。

  2. 安装分词扩展ik,在elasticsearch目录下执行命令

    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.4/elasticsearch-analysis-ik-5.6.4.zip
    

    `

  3. 查看安装的扩展列表
    `./bin/elasticsearch-plugin list
    `
  4. 启动 ./bin/elasticsearch
  5. 本地访问 http://localhost:9200/?pretty 查看启动成功

    Laravel扩展

    Laravel使用的5.4版本,使用官方Scout全文搜索扩展和针对Scout的elastic引擎laravel-scout-elastic,使用只需安装tamayo/laravel-scout-elastic,它会依赖下载Scout。

    `composer require tamayo/laravel-scout-elastic
    `

    添加服务提供者

    `// config/app.php
    'providers' => [
        ...
        Laravel\Scout\ScoutServiceProvider::class,
        ...
        ScoutEngines\Elasticsearch\ElasticsearchProvider::class,
    ],
    `

    生成scout配置

    `php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
    `

    添加Elastic引擎配置

    `// config/scout.php
    // Set your driver to elasticsearch

    'driver' => env('SCOUT_DRIVER', 'elasticsearch'),
    // Elastic引擎配置
    'elasticsearch' => [
            //elastic索引名称
        'index' => env('ELASTICSEARCH_INDEX', 'laravel'),
        // elastic 访问地址
        'hosts' => [
            env('ELASTICSEARCH_HOST', 'http://localhost'),
        ],
    ],
    

至此前期准备配置就算完成了

Scout使用

具体Scout扩展的使用可查询文档