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

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

王林
王林asal
2023-06-14 10:14:101253semak imbas

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

Laravel Scout ialah penyelesaian carian teks penuh Laravel Ia adalah perisian sumber terbuka yang popular yang membolehkan pembangun melaksanakan fungsi carian teks penuh yang cekap. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Laravel Scout untuk melaksanakan fungsi carian teks penuh.

Pasang Laravel Scout

Mula-mula, kita perlu memasang Laravel Scout. Ia boleh dipasang menggunakan Komposer:

composer require laravel/scout

Kemudian, kita perlu memasang enjin carian luaran seperti Algolia atau Elasticsearch. Di sini kami memperkenalkan menggunakan Algolia sebagai enjin carian.

Algolia ialah enjin carian berasaskan awan yang menyediakan API yang berkuasa dan satu set alatan yang membolehkan anda membuat, mengkonfigurasi dan menggunakan enjin carian dengan mudah. Untuk menggunakan Algolia sebagai enjin carian Laravel Scout, kita perlu memasang SDKnya:

composer require algolia/algoliasearch-client-php

Konfigurasikan Algolia

Seterusnya, kita perlu mengkonfigurasi Algolia. Pertama, kita perlu mendaftar akaun Algolia dan membuat aplikasi dan indeks. Penggunaan Algolia tidak akan diperkenalkan secara terperinci di sini Pembaca yang berminat boleh menyemak sendiri dokumentasi rasminya.

Kami kemudiannya perlu menambah ID aplikasi Algolia dan kunci API ke fail .env Laravel:

ALGOLIA_APP_ID=your_application_id
ALGOLIA_SECRET=your_api_secret

Sediakan model carian dalam pangkalan data

Seterusnya, kita perlu menentukan model carian kami dan tambahkannya pada Laravel Scout. Dalam contoh ini kami akan mencari model artikel kami. Mula-mula, kita perlu menggunakan sifat Boleh Cari dalam model artikel kami:

use LaravelScoutSearchable;

class Post extends Model
{
    use Searchable;
    ...
}

Kemudian, kita perlu mentakrifkan kaedah searchableAs pada model untuk menentukan indeks Algolia yang akan dicari:

public function searchableAs()
{
    return 'posts_index';
}

dalam Algolia Cipta indeks ini dalam , indeks ini akan digunakan untuk menyimpan rekod artikel kami. Kemudian, dalam model carian kami (model Post dalam kes ini), kami perlu menentukan kaedah toSearchableArray:

public function toSearchableArray()
{
    $array = $this->toArray();

    return $array;
}

Kaedah toSearchableArray mengembalikan tatasusunan bersekutu yang mengandungi semua medan boleh carian.

Mencari dengan Laravel Scout

Kini setelah kami menyelesaikan konfigurasi Laravel Scout dan Algolia, kami juga telah menyediakan model carian dalam model artikel kami. Sekarang, kami perlu melaksanakan halaman carian dalam aplikasi kami.

Kami memerlukan borang carian yang diserahkan kepada pengawal yang akan mengendalikan pertanyaan carian dan menghantarnya ke Algolia untuk carian. Kita perlu menggunakan kaedah carian Laravel Scout untuk mencari indeks Algolia:

public function search(Request $request)
{
    $search = $request->get('q');

    $posts = Post::search($search)->get();

    return view('search', compact('posts', 'search'));
}

Kaedah carian mengembalikan set hasil carian Laravel Scout dan kita boleh mendapatkan hasil carian melalui set hasil ini.

Akhir sekali, kami perlu memaparkan hasil carian kepada pengguna. Dalam halaman web, kita boleh menggunakan enjin templat Laravel's Blade untuk memaparkan hasil:

@if(count($posts) > 0)
    @foreach($posts as $post)
        <div class="post">
            <h2>{{$post->title}}</h2>
            <p>{{$post->content}}</p>
        </div>
    @endforeach
@else
    <div class="alert alert-warning">
        No results found for "{{$search}}"
    </div>
@endif

Kesimpulan

Laravel Scout ialah penyelesaian carian teks penuh popular berdasarkan enjin carian luaran seperti Algolia yang boleh Membenarkan pembangun untuk melaksanakan fungsi carian teks penuh yang cekap dengan mudah. Dalam artikel ini, kami mempelajari cara menggunakan Laravel Scout untuk melaksanakan carian teks penuh, termasuk mengkonfigurasi Algolia, mencipta model carian dan menggunakan Laravel Scout untuk mencari dalam aplikasi anda. Ini membantu kami dengan lebih mudah menambahkan keupayaan carian yang berkuasa pada aplikasi kami, dengan itu meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan carian teks penuh menggunakan Laravel Scout?. 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