摘要:导语全文搜索是很重要的功能,实现的方式也有很多种。以下通过和实现。是用开发的,并在许可证下作为开源软件发布。官方客户端在和许多其他语言中都是可用的。根据的排名显示,是最受欢迎的企业搜索引擎,其次是,也是基于。
导语
全文搜索是很重要的功能,实现的方式也有很多种。以下通过 Laravel Scout 和 Elasticsearch 实现。先来看下各自的介绍
Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步更新模型记录的索引。
Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。官方客户端在Java、.NET(C#)、PHP、Python、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() { AppModelsFakeArticle::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(), ] ]); }
运行填充 php artisan db:seed --class=FakeArticlesSeeder
搭建 Elasticsearch 容器laradock 中支持 Elasticsearch,直接搭建就可以,省去了诸多麻烦
切换到 laradock 目录
docker-compose build elasticsearch
docker-compose up -d elasticsearch
进入容器中 docker-compose exec elasticsearch bash
安装 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
退出容器后重启 docker-compose restart elasticsearch
参考资料:Laravel Scout、ik
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27893.html
摘要:写在前面以下简称是一个实时的分布式搜索和分析引擎。在搜索引擎方面,不仅仅有,像另一篇提到的,还有等等,这里不做评价和比较,本篇主要介绍中如何使用。首选必须安装有,请参考。本文基于,其他版本大同小异。 写在前面 Elasticsearch(以下简称es)是一个实时的分布式搜索和分析引擎。 在搜索引擎方面,不仅仅有Elasticsearch,像另一篇提到的Algolia,还有sphinx、...
摘要:至于其他的算一般我习惯说树形模型,这里说的概率模型可能是差不多的意思。 要点 不同工具之间版本匹配很重要由点及面,先实践起来再学细节的原理和使用 技术栈 laravel5.5框架+scout组件+elasticsearch6.3.0搜索引擎 辅助 elasticsearch-head 查看集群数据可视化 中文分词插件Ik 介绍 laravel是一款现代化的php框架es是搜索引擎e...
阅读 2778·2023-04-26 01:47
阅读 3590·2023-04-25 23:45
阅读 2459·2021-10-13 09:39
阅读 605·2021-10-09 09:44
阅读 1788·2021-09-22 15:59
阅读 2761·2021-09-13 10:33
阅读 1706·2021-09-03 10:30
阅读 655·2019-08-30 15:53