Laravel 基于 Scout 配置实现 Elasticsearch (一)- 准备工作

栏目: PHP · 发布时间: 4年前

内容简介:全文搜索是很重要的功能,实现的方式也有很多种。以下通过 Laravel Scout 和 Elasticsearch 实现。先来看下各自的介绍Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步更新模型记录的索引。Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apa

导语

全文搜索是很重要的功能,实现的方式也有很多种。以下通过 Laravel Scout 和 Elasticsearch 实现。先来看下各自的介绍

Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步更新模型记录的索引。

Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用 Java 开发的,并在Apache许可证下作为开源软件发布。官方客户端在Java、.NET(C#)、 PHPPython 、Apache Groovy、 Ruby 和许多其他语言中都是可用的。[5]根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

新建测试数据

新建 fake_articles 用来测试

php artisan make:model Models/FakeArticle -m
database/migrations/2019_06_13_095420_create_fake_articles_table.php
public function up()
{
    Schema::create('fake_articles', function (Blueprint $table) {
        $table->increments('id');
        $table->string('author', 20)->comment('作者');
        $table->string('title', 200)->comment('标题');
        $table->text('content')->comment('内容');
        $table->timestamps();
    });
}
php artisan migrate
php artisan make:seeder FakeArticlesSeeder
public function run()
{
    \App\Models\FakeArticle::insert([
        [
            'author' => '王二',
            'title' => '黄金时代',
            'content' => '那一天我二十一岁,在我一生的黄金时代,我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云,后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消逝,最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。',
            'created_at' => now(),
            'updated_at' => now(),
        ],
        ['author' => '陈辉',
            'title' => '绿毛水怪',
            'content' => '大团的蒲公英浮在街道的河流口,吞吐着柔软的针一样的光,我们好像在池塘的水底,从一个月亮走向另一个月亮。',
            'created_at' => now(),
            'updated_at' => now(),
        ],
        ['author' => '迅哥',
            'title' => '社戏',
            'content' => '两岸的豆麦和河底的水草所发散出来的清香,夹杂在水气中扑面的吹来;月色便朦胧在这水气里。淡黑的起伏的连山,仿佛是踊跃的铁的兽脊似的,都远远的向船尾跑去了,但我却还以为船慢。他们换了四回手,渐望见依稀的赵庄,而且似乎听到歌吹了,还有几点火,料想便是戏台,但或者也许是渔火。',
            'created_at' => now(),
            'updated_at' => now(),
        ]
    ]);
}
  1. 运行填充 php artisan db:seed --class=FakeArticlesSeeder

搭建 Elasticsearch 容器

laradock 中支持 Elasticsearch,直接搭建就可以,省去了诸多麻烦

  1. 切换到 laradock 目录
  2. docker-compose build elasticsearch
  3. docker-compose up -d elasticsearch
  4. 进入容器中 docker-compose exec elasticsearch bash
  5. 安装 ik 插件,注意要和 elasticsearch 版本相同,在 elasticsearch/Dockerfile 中可以查看版本 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip

Laravel 基于 Scout 配置实现 Elasticsearch (一)- 准备工作

  1. 退出容器后重启 docker-compose restart elasticsearch

参考资料: Laravel Scoutik


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Kafka权威指南

Kafka权威指南

Neha Narkhede、Gwen Shapira、Todd Palino / 薛命灯 / 人民邮电出版社 / 2017-12-26 / 69.00元

每个应用程序都会产生数据,包括日志消息、度量指标、用户活动记录、响应消息等。如何移动数据,几乎变得与数据本身一样重要。如果你是架构师、开发者或者产品工程师,同时也是Apache Kafka新手,那么这本实践指南将会帮助你成为流式平台上处理实时数据的专家。 本书由出身于LinkedIn的Kafka核心作者和一线技术人员共同执笔,详细介绍了如何部署Kafka集群、开发可靠的基于事件驱动的微服务,......一起来看看 《Kafka权威指南》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具