摘要:導語全文搜索是很重要的功能,實現的方式也有很多種。以下通過和實現。是用開發的,并在許可證下作為開源軟件發布。官方客戶端在和許多其他語言中都是可用的。根據的排名顯示,是最受歡迎的企業搜索引擎,其次是,也是基于。
導語
全文搜索是很重要的功能,實現的方式也有很多種。以下通過 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27893.html
摘要:寫在前面以下簡稱是一個實時的分布式搜索和分析引擎。在搜索引擎方面,不僅僅有,像另一篇提到的,還有等等,這里不做評價和比較,本篇主要介紹中如何使用。首選必須安裝有,請參考。本文基于,其他版本大同小異。 寫在前面 Elasticsearch(以下簡稱es)是一個實時的分布式搜索和分析引擎。 在搜索引擎方面,不僅僅有Elasticsearch,像另一篇提到的Algolia,還有sphinx、...
摘要:至于其他的算一般我習慣說樹形模型,這里說的概率模型可能是差不多的意思。 要點 不同工具之間版本匹配很重要由點及面,先實踐起來再學細節的原理和使用 技術棧 laravel5.5框架+scout組件+elasticsearch6.3.0搜索引擎 輔助 elasticsearch-head 查看集群數據可視化 中文分詞插件Ik 介紹 laravel是一款現代化的php框架es是搜索引擎e...
閱讀 2788·2023-04-26 01:47
閱讀 3597·2023-04-25 23:45
閱讀 2472·2021-10-13 09:39
閱讀 612·2021-10-09 09:44
閱讀 1799·2021-09-22 15:59
閱讀 2770·2021-09-13 10:33
閱讀 1722·2021-09-03 10:30
閱讀 662·2019-08-30 15:53