资讯专栏INFORMATION COLUMN

Laravel中利用Scout集成Elasticsearch搜索引擎

buildupchao / 3036人阅读

摘要:写在前面以下简称是一个实时的分布式搜索和分析引擎。在搜索引擎方面,不仅仅有,像另一篇提到的,还有等等,这里不做评价和比较,本篇主要介绍中如何使用。首选必须安装有,请参考。本文基于,其他版本大同小异。

写在前面

Elasticsearch(以下简称es)是一个实时的分布式搜索和分析引擎。

在搜索引擎方面,不仅仅有Elasticsearch,像另一篇提到的Algolia,还有sphinx、Solr等等,这里不做评价和比较,本篇主要介绍laravel中如何使用Elasticsearch。

首选必须安装有Elasticsearch,请参考 https://www.tech1024.cn/origi... 。

本文基于laravel5.5,其他版本大同小异。

准备工作

通过composer安装依赖包

</>复制代码

  1. composer require laravel/scout
  2. composer require tamayo/laravel-scout-elastic
基本配置

在config/app.php文件中的providers数组中加入服务提供者

</>复制代码

  1. // config/app.php
  2. "providers" => [
  3. // ...
  4. LaravelScoutScoutServiceProvider::class,
  5. // ...
  6. ScoutEnginesElasticsearchElasticsearchProvider::class,
  7. ],

使用以下命令生成scout配置文件

</>复制代码

  1. php artisan vendor:publish --provider="LaravelScoutScoutServiceProvider"

在config/scout.php中加入elasticsearch的配置

</>复制代码

  1. "elasticsearch" => [
  2. "index" => env("ELASTICSEARCH_INDEX", "laravel"),
  3. "hosts" => [
  4. env("ELASTICSEARCH_HOST", "http://localhost:9200"),
  5. ],
  6. ],

然后我们打开.env文件,加入scout和elasticsearch的配置

</>复制代码

  1. # scout配置
  2. SCOUT_DRIVER=elasticsearch
  3. SCOUT_PREFIX=
  4. # elasticsearch 配置
  5. ELASTICSEARCH_INDEX=esdemo
  6. # elasticsearch 地址
  7. ELASTICSEARCH_HOST=http://172.30.6.1:9200
创建索引 创建模型并填充数据

创建模型app/Student.php,为方便后续测试,请先建表和填充数据,可以手动使用sql语句添加数据,也使用laravel自动的数据迁移和填充,可以参考 https://www.tech1024.cn/origi...

</>复制代码

  1. toArray();
  2. // Customize array...
  3. return $array;
  4. }
  5. }
把所有现有记录导入到搜索索引里

</>复制代码

  1. php artisan scout:import "AppStudent"

是不是导入成功了呢?

</>复制代码

  1. php artisan scout:import "AppStudent"
  2. Imported [AppStudent] models up to ID: 500
  3. Imported [AppStudent] models up to ID: 1000
  4. Imported [AppStudent] models up to ID: 1500
  5. Imported [AppStudent] models up to ID: 2000
  6. Imported [AppStudent] models up to ID: 2500
  7. Imported [AppStudent] models up to ID: 3000
  8. Imported [AppStudent] models up to ID: 3500
  9. Imported [AppStudent] models up to ID: 4000
  10. Imported [AppStudent] models up to ID: 4500
  11. Imported [AppStudent] models up to ID: 5000
  12. Imported [AppStudent] models up to ID: 5500
  13. Imported [AppStudent] models up to ID: 6000
  14. Imported [AppStudent] models up to ID: 6500
  15. Imported [AppStudent] models up to ID: 7000
  16. Imported [AppStudent] models up to ID: 7500
  17. Imported [AppStudent] models up to ID: 8000
  18. Imported [AppStudent] models up to ID: 8500
  19. Imported [AppStudent] models up to ID: 9000
  20. Imported [AppStudent] models up to ID: 9500
  21. Imported [AppStudent] models up to ID: 10000
  22. All [AppStudent] records have been imported.

我们访问es,http://172.30.6.1:9200/esdemo/students_index/_search

是不是已经有了刚刚导入的students_index索引数据

大功告成

</>复制代码

  1. $studens = AppStudent::search("成燕")->get();
  2. dd($studens);

可以填充个百万条数据试试,检索速度,是不是比直接查询数据库要快很多呢?

更多用法请查阅官方文档 https://www.elastic.co/guide/...

</>复制代码

  1. 原文: http://www.tech1024.cn/origin...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28562.html

相关文章

  • elastic学习笔记

    摘要:至于其他的算一般我习惯说树形模型,这里说的概率模型可能是差不多的意思。 要点 不同工具之间版本匹配很重要由点及面,先实践起来再学细节的原理和使用 技术栈 laravel5.5框架+scout组件+elasticsearch6.3.0搜索引擎 辅助 elasticsearch-head 查看集群数据可视化 中文分词插件Ik 介绍 laravel是一款现代化的php框架es是搜索引擎e...

    heartFollower 评论0 收藏0
  • Laravel 基于 Scout 配置实现 Elasticsearch (一)- 准备工作

    摘要:导语全文搜索是很重要的功能,实现的方式也有很多种。以下通过和实现。是用开发的,并在许可证下作为开源软件发布。官方客户端在和许多其他语言中都是可用的。根据的排名显示,是最受欢迎的企业搜索引擎,其次是,也是基于。 导语 全文搜索是很重要的功能,实现的方式也有很多种。以下通过 Laravel Scout 和 Elasticsearch 实现。先来看下各自的介绍 Laravel Scout 为...

    jsyzchen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<