Menggunakan Laravel Scout Untuk Mengaktifkan Pencarian Teks Lengkap

Diterbitkan: 2023-05-08

Kerangka kerja Laravel telah menjadi sumber daya masuk untuk pengembang yang membangun layanan web.

Sebagai alat sumber terbuka, Laravel menawarkan segudang fungsionalitas out-of-the-box yang memungkinkan pengembang membangun aplikasi yang kuat dan fungsional.

Di antara penawarannya adalah Laravel Scout, perpustakaan untuk mengelola indeks pencarian untuk aplikasi Anda. Fleksibilitasnya memungkinkan pengembang menyempurnakan konfigurasi dan memilih dari driver Algolia, Meilisearch, MySQL, atau Postgres untuk menyimpan indeks.

Di sini, kami akan mengeksplorasi alat ini secara mendalam, mengajari Anda cara menambahkan dukungan pencarian teks lengkap ke aplikasi Laravel melalui driver. Anda akan memodelkan demo aplikasi Laravel untuk menyimpan nama kereta mockup dan kemudian menggunakan Laravel Scout untuk menambahkan pencarian ke aplikasi tersebut.

Prasyarat

Untuk mengikuti, Anda harus memiliki:

  • Kompiler PHP diinstal di komputer Anda. Tutorial ini menggunakan PHP versi 8.1.
  • Mesin Docker atau Docker Desktop terpasang di komputer Anda
  • Akun cloud Algolia, yang dapat Anda buat secara gratis
Ingin membuat aplikasi Anda lebih ramah pengguna? Coba tambahkan dukungan pencarian teks lengkap! Begini caranya dengan Laravel Scout ️ Klik untuk Tweet

Cara Memasang Scout di Proyek Laravel

Untuk menggunakan Scout, Anda harus terlebih dahulu membuat aplikasi Laravel tempat Anda ingin menambahkan fungsi pencarian. Skrip Laravel-Scout Bash berisi perintah untuk membuat aplikasi Laravel di dalam container Docker. Menggunakan Docker berarti Anda tidak perlu menginstal perangkat lunak pendukung tambahan, seperti database MySQL.

Skrip Laravel-scout menggunakan bahasa skrip Bash, jadi Anda harus menjalankannya dalam lingkungan Linux. Jika Anda menjalankan Windows, pastikan Anda mengonfigurasi Windows Subsystem for Linux (WSL).

Jika menggunakan WSL, jalankan perintah berikut di terminal Anda untuk mengatur distribusi Linux pilihan Anda.

 wsl -s ubuntu

Selanjutnya, navigasikan ke lokasi di komputer Anda yang ingin Anda tempatkan proyek. Skrip Laravel-Scout akan menghasilkan direktori proyek di sini. Pada contoh di bawah ini, skrip Laravel-Scout akan membuat direktori di dalam direktori desktop .

 cd /desktop

Jalankan perintah di bawah ini untuk mengeksekusi skrip Laravel-Scout. Ini akan merancah aplikasi Dockerized dengan kode boilerplate yang diperlukan.

 curl -s https://laravel.build/laravel-scout-app | bash

Setelah eksekusi, ubah direktori Anda menggunakan cd laravel-scout-app . Kemudian, jalankan perintah sail-up di dalam folder proyek untuk memulai wadah Docker untuk aplikasi Anda.

Catatan: Pada banyak distribusi Linux, Anda mungkin perlu menjalankan perintah di bawah ini dengan perintah sudo untuk memulai hak istimewa yang lebih tinggi.

 ./vendor/bin/sail up

Anda mungkin mengalami kesalahan:

Kesalahan menyatakan port dialokasikan
Kesalahan menyatakan port dialokasikan.

Untuk mengatasinya, gunakan variabel APP_PORT untuk menentukan port dalam perintah sail up :

 APP_PORT=3001 ./vendor/bin/sail up

Selanjutnya, jalankan perintah di bawah ini untuk menjalankan aplikasi melalui Artisan di server PHP.

 php artisan serve
Melayani aplikasi Laravel dengan Artisan
Melayani aplikasi Laravel dengan Artisan

Dari browser web Anda, navigasikan ke aplikasi yang sedang berjalan di http://127.0.0.1:8000. Aplikasi akan menampilkan halaman selamat datang Laravel di rute default.

Halaman selamat datang dari aplikasi Laravel
Halaman selamat datang dari aplikasi Laravel

Cara Menambahkan Laravel Scout ke Aplikasi

Di terminal Anda, masukkan perintah untuk mengaktifkan manajer paket Composer PHP untuk menambahkan Laravel Scout ke proyek.

 composer require laravel/scout

Selanjutnya, publikasikan file konfigurasi Scout menggunakan perintah vendor:publish. Perintah tersebut akan menerbitkan file konfigurasi scout.php ke direktori konfigurasi aplikasi Anda.

 php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

Sekarang, ubah file .env boilerplate agar berisi nilai boolean SCOUT_QUEUE .

Nilai SCOUT_QUEUE akan memungkinkan Scout mengantri operasi, memberikan waktu respons yang lebih baik. Tanpanya, pembalap Pramuka seperti Meilisearch tidak akan langsung mencerminkan rekor baru.

 SCOUT_QUEUE=true

Juga, ubah variabel DB_HOST di file .env untuk menunjuk ke localhost Anda untuk menggunakan database MySQL di dalam container Docker.

 DB_HOST=127.0.0.1

Cara Menandai Model dan Mengonfigurasi Indeks

Scout tidak mengaktifkan model data yang dapat ditelusuri secara default. Anda harus secara eksplisit menandai model sebagai dapat dicari menggunakan sifat Laravel\Scout\Searchable .

Anda akan mulai dengan membuat model data untuk aplikasi demo Train dan menandainya sebagai dapat dicari.

Cara Membuat Model

Untuk aplikasi Train , Anda ingin menyimpan nama placeholder dari setiap kereta yang tersedia.

Jalankan perintah Artisan di bawah ini untuk menghasilkan migrasi dan beri nama create_trains_table .

 php artisan make:migration create_trains_table
Membuat migrasi bernama create_trains_table
Membuat migrasi bernama create_trains_table

Migrasi akan dibuat dalam file yang namanya menggabungkan nama yang ditentukan dan stempel waktu saat ini.

Buka file migrasi yang terletak di direktori database/migrations/ .

Untuk menambahkan kolom judul, tambahkan kode berikut setelah kolom id() pada baris 17. Kode tersebut akan menambahkan kolom judul.

 $table->string('title');

Untuk menerapkan migrasi, jalankan perintah di bawah ini.

 php artisan migrate
Menerapkan migrasi Artisan
Menerapkan migrasi Artisan

Setelah menjalankan migrasi database, buat file bernama Train.php di direktori app/Models/ .

Cara Menambahkan Trait LaravelScoutSearchable

Tandai model Train untuk pencarian dengan menambahkan sifat Laravel\Scout\Searchable ke model, seperti yang ditunjukkan di bawah ini.

 <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Laravel\Scout\Searchable; class Train extends Model { use Searchable; public $fillable = ['title'];

Selain itu, Anda perlu mengonfigurasi indeks pencarian dengan mengganti metode searchable . Perilaku default Scout akan mempertahankan model agar cocok dengan nama tabel model.

Jadi, tambahkan kode berikut ke file Train.php di bawah kode dari blok sebelumnya.

 /** * Retrieve the index name for the model. * * @return string */ public function searchableAs() { return 'trains_index'; } }

Cara Menggunakan Algolia dengan Scout

Untuk pencarian teks lengkap pertama dengan Laravel Scout, Anda akan menggunakan driver Algolia. Algolia adalah platform perangkat lunak sebagai layanan (SaaS) yang digunakan untuk mencari data dalam jumlah besar. Ini menyediakan dasbor web bagi pengembang untuk mengelola indeks pencarian mereka dan API tangguh yang dapat Anda akses melalui kit pengembangan perangkat lunak (SDK) dalam bahasa pemrograman pilihan Anda.

Di dalam aplikasi Laravel, Anda akan menggunakan paket klien Algolia untuk PHP.

Cara Mengatur Algolia

Pertama, Anda harus menginstal paket klien pencarian Algolia PHP untuk aplikasi Anda.

Jalankan perintah di bawah ini.

 composer require algolia/algoliasearch-client-php

Selanjutnya, Anda harus mengatur ID Aplikasi dan kredensial Kunci API Rahasia dari Algolia di file .env .

Menggunakan browser web Anda, navigasikan ke dasbor Algolia Anda untuk mendapatkan ID Aplikasi dan kredensial Kunci API Rahasia.

Klik Pengaturan di bagian bawah sidebar kiri untuk menavigasi ke halaman Pengaturan .

Selanjutnya, klik Kunci API di bagian Tim dan Akses di halaman Pengaturan untuk melihat kunci akun Algolia Anda.

Menavigasi ke halaman Kunci API di Algolia Cloud
Halaman Kunci API di Algolia Cloud

Di halaman API Keys, catat nilai Application ID dan Admin API Key . Anda akan menggunakan kredensial ini untuk mengautentikasi koneksi antara aplikasi Laravel dan Algolia.

Melihat ID Aplikasi dan Kunci API Admin dari halaman Kunci API Algolia
ID Aplikasi dan Kunci Admin API

Tambahkan kode di bawah ini ke file .env Anda menggunakan editor kode Anda dan ganti placeholder dengan rahasia API Algolia yang sesuai.

 ALGOLIA_APP_ID=APPLICATION_ID ALGOLIA_SECRET=ADMIN_API_KEY

Ganti juga variabel SCOUT_DRIVER dengan kode di bawah ini untuk mengubah nilai dari meilisearch menjadi algolia . Mengubah nilai ini akan menginstruksikan Scout untuk menggunakan driver Algolia.

 SCOUT_DRIVER=algolia

Cara Membuat Pengontrol Aplikasi

Di dalam direktori app/Http/Controllers/ , buat file TrainSearchController.php untuk menyimpan pengontrol untuk aplikasi tersebut. Pengontrol akan mencantumkan dan menambahkan data ke model Train .

Tambahkan blok kode berikut ke dalam file TrainSearchController.php untuk membuat controller.

 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Models\Train; class TrainSearchController extends Controller { /** * Get the index name for the model. * * @return string */ public function index(Request $request) { if($request->has('titlesearch')){ $trains = Train::search($request->titlesearch) ->paginate(6); }else{ $trains = Train::paginate(6); } return view('Train-search',compact('trains')); } /** * Get the index name for the model. * * @return string */ public function create(Request $request) { $this->validate($request,['title'=>'required']); $trains = Train::create($request->all()); return back(); } }

Cara Membuat Rute Aplikasi

Pada langkah ini, Anda akan membuat rute untuk mendaftar dan menambahkan kereta baru ke database.

Buka file route/web.php Anda dan ganti kode yang ada dengan blok di bawah ini.

 <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\TrainSearchController; Route::get('/', function () { return view('welcome'); }); Route::get('trains-lists', [TrainSearchController::class, 'index']) -> name ('trains-lists'); Route::post('create-item', [TrainSearchController::class, 'create']) -> name ('create-item');

Kode di atas mendefinisikan dua rute dalam aplikasi. Permintaan GET untuk rute /trains-lists mencantumkan semua data kereta yang disimpan. Permintaan POST untuk rute /create-item membuat data kereta baru.

Cara Membuat Tampilan Aplikasi

Buat file di dalam direktori resources/views/ dan beri nama Train-search.blade.php . File tersebut akan menampilkan antarmuka pengguna untuk fungsi pencarian.

Tambahkan konten blok kode di bawah ini ke dalam file Train-search.blade.php untuk membuat satu halaman untuk fungsi pencarian.

 <!DOCTYPE html> <html> <head> <title>Laravel - Laravel Scout Algolia Search Example</title> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body> <div class="container"> <h2 class="text-bold">Laravel Full-Text Search Using Scout </h2><br/> <form method="POST" action="{{ route('create-item') }}" autocomplete="off"> @if(count($errors)) <div class="alert alert-danger"> <strong>Whoops!</strong> There is an error with your input. <br/> <ul> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="row"> <div class="col-md-6"> <div class="form-group {{ $errors->has('title') ? 'has-error' : '' }}"> <input type="text" name="title" class="form-control" placeholder="Enter Title" value="{{ old('title') }}"> <span class="text-danger">{{ $errors->first('title') }}</span> </div> </div> <div class="col-md-6"> <div class="form-group"> <button class="btn btn-primary">Create New Train</button> </div> </div> </div> </form> <div class="panel panel-primary"> <div class="panel-heading">Train Management</div> <div class="panel-body"> <form method="GET" action="{{ route('trains-lists') }}"> <div class="row"> <div class="col-md-6"> <div class="form-group"> <input type="text" name="titlesearch" class="form-control" placeholder="Enter Title For Search" value="{{ old('titlesearch') }}"> </div> </div> <div class="col-md-6"> <div class="form-group"> <button class="btn btn-primary">Search</button> </div> </div> </div> </form> <table class="table"> <thead> <th>Id</th> <th>Train Title</th> <th>Creation Date</th> <th>Updated Date</th> </thead> <tbody> @if($trains->count()) @foreach($trains as $key => $item) <tr> <td>{{ ++$key }}</td> <td>{{ $item->title }}</td> <td>{{ $item->created_at }}</td> <td>{{ $item->updated_at }}</td> </tr> @endforeach @else <tr> <td colspan="4">No train data available</td> </tr> @endif </tbody> </table> {{ $trains->links() }} </div> </div> </div> </body> </html>

Kode HTML di atas berisi form element dengan input field dan tombol untuk mengetikkan judul kereta sebelum disimpan ke database. Kode ini juga memiliki tabel HTML yang menampilkan detail id , title , created_at , dan updated_at dari entri kereta dalam database.

Cara Menggunakan Pencarian Algolia

Untuk melihat halaman, navigasikan ke http://127.0.0.1:8000/trains-lists dari browser web Anda.

Melihat data model Kereta yang ditampilkan dalam halaman daftar kereta
Melatih data model

Basis data saat ini kosong, jadi Anda harus memasukkan judul kereta demo di kolom input dan klik Buat Kereta Baru untuk menyimpannya.

Memasukkan entri kereta baru
Memasukkan entri kereta baru

Untuk menggunakan fitur pencarian, ketikkan kata kunci dari setiap judul kereta api yang disimpan ke dalam bidang masukan Enter Title For Search dan klik Search .

Seperti yang ditunjukkan pada gambar di bawah, hanya entri pencarian yang mengandung kata kunci di judulnya yang akan ditampilkan.

Menggunakan fitur pencarian untuk menemukan pintu masuk kereta
Menggunakan fitur pencarian untuk menemukan pintu masuk kereta

Meilisearch dengan Laravel Scout

Meilisearch adalah mesin pencari sumber terbuka yang berfokus pada kecepatan, kinerja, dan peningkatan pengalaman pengembang. Ini berbagi beberapa fitur dengan Algolia, menggunakan algoritme, struktur data, dan penelitian yang sama — tetapi dengan bahasa pemrograman yang berbeda.

Pengembang dapat membuat dan menghosting sendiri instans Meilisearch dalam infrastruktur lokal atau cloud mereka. Meilisearch juga memiliki penawaran cloud beta yang mirip dengan Algolia untuk pengembang yang ingin menggunakan produk tanpa mengelola infrastrukturnya.

Dalam tutorial, Anda sudah memiliki instance Meilisearch lokal yang berjalan di dalam wadah Docker Anda. Anda sekarang akan memperluas fungsionalitas Laravel Scout untuk menggunakan instance Meilisearch.

Untuk menambahkan Meilisearch ke aplikasi Laravel, jalankan perintah di bawah ini di terminal proyek Anda.

 composer require meilisearch/meilisearch-php

Selanjutnya, Anda perlu memodifikasi variabel Meilisearch di dalam file .env untuk mengonfigurasinya.

Ganti variabel SCOUT_DRIVER , MEILISEARCH_HOST , dan MEILISEARCH_KEY di file .env dengan yang di bawah ini.

 SCOUT_DRIVER=meilisearch MEILISEARCH_HOST=http://127.0.0.1:7700 MEILISEARCH_KEY=LockKey

Kunci SCOUT_DRIVER menentukan driver yang harus digunakan Scout, sedangkan MEILISEARCH_HOST mewakili domain tempat instans Meilisearch Anda berjalan. Meskipun tidak diperlukan selama pengembangan, disarankan untuk menambahkan MEILISEARCH_KEY dalam produksi.

Catatan: Komentari ID dan Rahasia Algolia saat menggunakan Meilisearch sebagai driver pilihan Anda.

Setelah menyelesaikan konfigurasi .env , Anda harus mengindeks rekaman yang sudah ada menggunakan perintah Artisan di bawah ini.

 php artisan scout:import "App\Models\Train"

Laravel Scout dengan Mesin Database

Mesin database Scout mungkin paling cocok untuk aplikasi yang menggunakan database yang lebih kecil atau mengelola beban kerja yang kurang intensif. Saat ini, mesin database mendukung PostgreSQL dan MySQL.

Mesin ini menggunakan klausa "di mana" dan indeks teks lengkap terhadap basis data Anda yang ada, memungkinkannya menemukan hasil pencarian yang paling relevan. Anda tidak perlu mengindeks catatan Anda saat menggunakan mesin database.

Untuk menggunakan mesin database, Anda harus mengatur variabel SCOUT_DRIVER .env Anda ke database.

Buka file .env di dalam aplikasi Laravel dan ubah nilai variabel SCOUT_DRIVER .

 SCOUT_DRIVER = database

Setelah mengubah driver Anda ke database, Scout akan beralih menggunakan mesin database untuk pencarian teks lengkap.

Collection Engine dengan Laravel Scout

Selain mesin database, Scout juga menawarkan mesin koleksi. Mesin ini menggunakan klausa "di mana" dan pemfilteran koleksi untuk mengekstraksi hasil pencarian yang paling relevan.

Berbeda dengan mesin basis data, mesin pengumpul mendukung semua basis data relasional yang juga didukung oleh Laravel.

Anda dapat menggunakan mesin koleksi dengan menyetel variabel lingkungan SCOUT_DRIVER ke collection atau dengan menentukan driver koleksi secara manual di file konfigurasi Scout.

 SCOUT_DRIVER = collection

Explorer dengan Elasticsearch

Dengan kekuatan kueri Elasticsearch, Explorer adalah driver Elasticsearch modern untuk Laravel Scout. Ini menawarkan driver Scout yang kompatibel dan manfaat seperti menyimpan, mencari, dan menganalisis data dalam jumlah besar secara real time. Elasticsearch dengan Laravel menawarkan hasil dalam milidetik.

Untuk menggunakan driver Elasticsearch Explorer di aplikasi Laravel, Anda harus mengonfigurasi file boilerplate docker-compose.yml yang dibuat oleh skrip Laravel-Scout. Anda akan menambahkan konfigurasi tambahan untuk Elasticsearch dan memulai ulang container.

Buka file docker-compose.yml Anda dan ganti isinya dengan yang berikut ini.

 # For more information: https://laravel.com/docs/sail version: '3' services: laravel.test: build: context: ./vendor/laravel/sail/runtimes/8.1 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' image: sail-8.1/app extra_hosts: - 'host.docker.internal:host-gateway' ports: - '${APP_PORT:-80}:80' - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' environment: WWWUSER: '${WWWUSER}' LARAVEL_SAIL: 1 XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' volumes: - '.:/var/www/html' networks: - sail depends_on: - mysql - redis - meilisearch - mailhog - selenium - pgsql - elasticsearch mysql: image: 'mysql/mysql-server:8.0' ports: - '${FORWARD_DB_PORT:-3306}:3306' environment: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' MYSQL_ROOT_HOST: "%" MYSQL_DATABASE: '${DB_DATABASE}' MYSQL_USER: '${DB_USERNAME}' MYSQL_PASSWORD: '${DB_PASSWORD}' MYSQL_ALLOW_EMPTY_PASSWORD: 1 volumes: - 'sail-mysql:/var/lib/mysql' - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' networks: - sail healthcheck: test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"] retries: 3 timeout: 5s elasticsearch: image: 'elasticsearch:7.13.4' environment: - discovery.type=single-node ports: - '9200:9200' - '9300:9300' volumes: - 'sailelasticsearch:/usr/share/elasticsearch/data' networks: - sail kibana: image: 'kibana:7.13.4' environment: - elasticsearch.hosts=http://elasticsearch:9200 ports: - '5601:5601' networks: - sail depends_on: - elasticsearch redis: image: 'redis:alpine' ports: - '${FORWARD_REDIS_PORT:-6379}:6379' volumes: - 'sail-redis:/data' networks: - sail healthcheck: test: ["CMD", "redis-cli", "ping"] retries: 3 timeout: 5s pgsql: image: 'postgres:13' ports: - '${FORWARD_DB_PORT:-5432}:5432' environment: PGPASSWORD: '${DB_PASSWORD:-secret}' POSTGRES_DB: '${DB_DATABASE}' POSTGRES_USER: '${DB_USERNAME}' POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}' volumes: - 'sailpgsql:/var/lib/postgresql/data' networks: - sail healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "${DB_DATABASE}", "-U", "${DB_USERNAME}"] retries: 3 timeout: 5s meilisearch: image: 'getmeili/meilisearch:latest' ports: - '${FORWARD_MEILISEARCH_PORT:-7700}:7700' volumes: - 'sail-meilisearch:/meili_data' networks: - sail healthcheck: test: ["CMD", "wget", "--no-verbose", "--spider", "http://localhost:7700/health"] retries: 3 timeout: 5s mailhog: image: 'mailhog/mailhog:latest' ports: - '${FORWARD_MAILHOG_PORT:-1025}:1025' - '${FORWARD_MAILHOG_DASHBOARD_PORT:-8025}:8025' networks: - sail selenium: image: 'selenium/standalone-chrome' extra_hosts: - 'host.docker.internal:host-gateway' volumes: - '/dev/shm:/dev/shm' networks: - sail networks: sail: driver: bridge volumes: sail-mysql: driver: local sail-redis: driver: local sail-meilisearch: driver: local sailpgsql: driver: local sailelasticsearch: driver: local

Selanjutnya, jalankan perintah di bawah ini untuk menarik gambar Elasticsearch baru yang Anda tambahkan ke file docker-compose.yml .

 docker-compose up

Kemudian, jalankan perintah Composer di bawah ini untuk menginstal Explorer ke dalam proyek.

 composer require jeroen-g/explorer

Anda juga perlu membuat file konfigurasi untuk driver Explorer.

Jalankan perintah Artisan di bawah ini untuk menghasilkan file explorer.config untuk menyimpan konfigurasi.

 php artisan vendor:publish --tag=explorer.config

File konfigurasi yang dihasilkan di atas akan tersedia di direktori /config .

Di file config/explorer.php , Anda dapat mereferensikan model Anda menggunakan kunci indexes .

 'indexes' => [ \App\Models\Train::class ],

Ubah nilai variabel SCOUT_DRIVER di dalam file .env menjadi elastic untuk mengonfigurasi Scout agar menggunakan driver Explorer.

 SCOUT_DRIVER = elastic

Pada titik ini, Anda akan menggunakan Explorer dalam model Train dengan mengimplementasikan antarmuka Explorer dan mengganti metode mappableAs() .

Buka file Train.php di dalam direktori App > Models dan ganti kode yang ada dengan kode di bawah ini.

 <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use JeroenG\Explorer\Application\Explored; use Laravel\Scout\Searchable; class Train extends Model implements Explored { use HasFactory; use Searchable; protected $fillable = ['title']; public function mappableAs(): array { return [ 'id'=>$this->Id, 'title' => $this->title, ]; } }

Dengan kode yang telah Anda tambahkan di atas, kini Anda dapat menggunakan Explorer untuk mencari teks dalam model Train .

Laravel + Scout = integrasi pencarian teks lengkap yang cepat, kuat, dan bersih. Bangun aplikasi demo dan coba dengan panduan ini ️ Klik untuk Tweet

Ringkasan

Untuk pengembang PHP, Laravel dan add-on seperti Scout membuatnya mudah untuk mengintegrasikan fungsionalitas pencarian teks lengkap yang cepat dan kuat. Dengan Database Engine, Collection Engine, dan kemampuan Meilisearch dan Elasticsearch, Anda dapat berinteraksi dengan database aplikasi Anda dan menerapkan mekanisme pencarian lanjutan hanya dalam hitungan milidetik.

Mengelola dan memperbarui database Anda dengan lancar berarti pengguna Anda menerima pengalaman yang optimal sementara kode Anda tetap bersih dan efisien.

Dengan solusi Hosting Aplikasi dan Basis Data kami, Kinsta adalah toko serba ada untuk semua kebutuhan pengembangan Laravel modern Anda. $20 pertama gratis.