Implementasi Elasticsearch dengan Laravel Scout

Hallo Kreatif Readers, artikel kali ini akan membahas mengenai Elasticsearch dengan Laravel Scout

Laravel Scout adalah extension package untuk framework PHP Laravel yang memimgkinkan integrasi dengan search engine seperti Elasticsearch. Dengan menggunakan Larvaravel Scout dapat dengan mudah untuk mengimplementasikan fitur pencarian dan penelususan 9search and browse)  dalam aplikasi laravel.

Fitur utama dari Laravel Scout meliputi:

  • Driver Agnostic: Scout didesain agar bisa bekerja dengan berbagai mesin pencari, seperti Algolia dan Elasticsearch, tanpa harus mengubah kode aplikasi Anda secara signifikan.
  • Pencarian Full-Text: Mendukung pencarian teks lengkap (full-text search) yang memungkinkan pengguna untuk mencari data berdasarkan kata kunci atau frasa tertentu.
  • Integrasi dengan Eloquent: Memanfaatkan ORM (Object-Relational Mapping) Laravel, yaitu Eloquent, untuk mengelola data dan mengintegrasikan fitur pencarian dengan model Eloquent.
  • Kemudahan Penggunaan: Scout menyediakan API yang sederhana untuk menentukan model mana yang harus diindeks dan bagaimana cara melaksanakan pencarian di dalamnya.

Elasticsearch adalah mesin pencari dan analisis yang bersifat open source dan terdistribusi untuk segaja jenis data, menggunakan REST dan JSON. Konsep intinya adalah indeks dokumen, pencarian teks penuh dan pemroresan data. Laravel scout memberikan solusi sederhana untuk menambahkan pencarian teks lengkap ke model eloquest.

Implementasi Elastisearch dengan LAravel Scout melibatkan beberapa langkah utama. Elasticsearch akan bertindak sebagai mesin pencari utama, sedangkan Laravel Scout akan memfasilitasi integrasi anatar aplikasi laravel dengan Elasticsearch.

Berikut langkah – langkah mengimplementasikan Elasticsearch dengan Laravel Scout

1. Install Package Laravel Scout dan Elasticsearch driver

Install Package Scout:

composer require laravel/scout

Install Elasticsearch Driver untuk Scout:

composer require babenkoivan/scout-elasticsearch-driver

2. Konfigurasi Laravel Scout

Tambahkan ScoutServiceProvider ke dalam array providers di dalam file config/app.php:

'providers' => [
 // ...
 Laravel\Scout\ScoutServiceProvider::class,
],

Tambahkan konfigurasi driver Elasticsearch ke dalam file .env:

SCOUT_DRIVER=elasticsearch
ELASTICSEARCH_HOST=localhost
ELASTICSEARCH_PORT=9200

3. Konfigurasi Model Eloquent

Implementasikan interface Searchable pada model Eloquent yang ingin Anda indeks dengan Elasticsearch:

use Laravel\Scout\Searchable;
class Artikel extends Model
{
 use Searchable;
}

Tentukan pengindeksan dan fitur pencarian dalam model dengan menentukan metode toSearchableArray():

public function toSearchableArray()
{
 $array = $this->toArray();
// Customize the searchable fields
 return $array;
}

4. Indeks Data dengan Elasticsearch

Setelah mengonfigurasi model dan konfigurasi driver Elasticsearch, Anda dapat mengindeks data dengan menggunakan perintah artisan:

php artisan scout:import "App\Artikel"

5. Implementasi Pencarian

Gunakan fitur pencarian dalam aplikasi Anda dengan menggunakan method search() pada model yang mendukung pencarian Scout:

$results = Artikel::search('kata kunci pencarian')->get();

Dengan menggunakan Laravel Scout, dapat dengan mudah menambahkan dan mengelola fitur pencarian yang kuat dalam aplikasi Laravel tanpa perlu menghadapi kompleksitas dalam mengimplementasikan mesin pencari dari awal.

Referensi: Ardian Prima Atmaja, Susilo Veri Yulianto. Pemanfaatan Elasticsearch untuk Temu Kembali Informasi Tugas Akhir: Jurnal Nasional Teknologi dan Sistem Informasi.2018
Laravel.com