Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk melaksanakan carian teks penuh menggunakan Laravel Scout dan Meilisearch?

Pembangunan Laravel: Bagaimana untuk melaksanakan carian teks penuh menggunakan Laravel Scout dan Meilisearch?

PHPz
PHPzasal
2023-06-14 12:01:341405semak imbas

Dengan perkembangan Internet, carian teks penuh telah menjadi ciri penting untuk semakin banyak tapak web dan aplikasi. Dalam rangka kerja Laravel, kami boleh melaksanakan fungsi carian teks penuh yang cekap dan pantas dengan menyepadukan Laravel Scout dan Meilisearch.

1. Apakah itu Pengakap Laravel?

Laravel Scout ialah pemalam yang disediakan secara rasmi oleh Laravel, yang digunakan untuk menyediakan fungsi carian teks penuh untuk aplikasi Laravel. Ia mudah digunakan dan menyokong berbilang enjin carian, termasuk Algolia, Elasticsearch dan Meilisearch.

2. Apakah itu Meilisearch?

Meilisearch ialah enjin carian teks penuh sumber terbuka yang pantas, selamat dan boleh menskalakan kepada set data yang besar dengan cepat. Berbanding dengan enjin carian lain, Meilisearch mempunyai kelajuan carian yang lebih pantas dan ruang indeks yang lebih kecil, di samping menyediakan satu siri pilihan pertanyaan dan penapisan yang mudah digunakan.

3. Bagaimanakah cara menggunakan Laravel Scout dan Meilisearch untuk melaksanakan carian teks penuh?

  1. Pasang Laravel Scout dan Meilisearch

Mula-mula, anda perlu memasang Laravel Scout dan Meilisearch dalam aplikasi Laravel anda. Di sini kita mengambil Laravel 8 sebagai contoh Kita boleh menggunakan Komposer untuk memasang:

composer require laravel/scout meilisearch/meilisearch-php
  1. Konfigurasi Laravel Scout

Selepas melengkapkan pemasangan, kita juga perlu mengkonfigurasi Laravel dalam aplikasi Laravel Scout. Buka fail config/app.php dan tambahkan pembekal perkhidmatan projek Laravel Scout pada tatasusunan penyedia:

'providers' => [
    // ...
    LaravelScoutScoutServiceProvider::class,
],

Kemudian, konfigurasikan maklumat pangkalan data dan maklumat Meilisearch dalam fail .env:

SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_KEY=masterKey
MEILISEARCH_HTTP_CLIENT=meilisearch
  1. Buat model dan indeks

Seterusnya, kita perlu mencipta model untuk carian teks penuh dalam aplikasi Laravel dan sediakan indeks carian dalam model. Sebagai contoh, kita boleh mencipta model bernama Artikel:

php artisan make:model Article -m

Semasa mencipta model, fail migrasi pangkalan data akan dibuat. Kita perlu menambah indeks carian pada model dalam fail migrasi:

Schema::create('articles', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->text('body');
    $table->timestamps();

    $table->softDeletes();
});

// 添加搜索索引
IlluminateSupportFacadesSchema::table('articles', function ($table) {
    $table->text('searchable')->nullable();
});

// 创建搜索索引
IlluminateSupportFacadesArtisan::call('scout:import', ['model' => AppModelsArticle::class]);

Selepas menambah indeks carian dalam fail migrasi, kita perlu mengemas kini model supaya Laravel Scout boleh menggunakan indeks untuk carian teks penuh :

use LaravelScoutSearchable;

class Article extends Model
{
    use Searchable;
}
  1. Lakukan carian teks penuh

Pada ketika ini, kami telah melengkapkan konfigurasi asas menggunakan Laravel Scout dan Meilisearch untuk melaksanakan carian teks penuh. Untuk menjalankan carian teks penuh, kami boleh menggunakan kaedah carian global yang disediakan oleh Laravel Scout:

$articles = Article::search('搜索关键词')->get();

Melalui kaedah ini, kami boleh mendapatkan artikel yang berkaitan dengan cepat dan cekap serta meningkatkan pengalaman pengguna.

4. Ringkasan

Laravel Scout dan Meilisearch ialah sepasang alat carian teks penuh yang berkuasa dan cekap yang boleh membantu kami mencapai fungsi carian yang pantas dan tepat. Hanya konfigurasi dan panggilan mudah diperlukan untuk membantu kami memenuhi keperluan pengguna dan meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan carian teks penuh menggunakan Laravel Scout dan Meilisearch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn