ติดตั้งและกำหนดค่า Elasticsearch ใน Laravel

ในการติดตั้งและกำหนดค่า Elasticsearch ใน Laravel ให้ทำตามขั้นตอนเหล่านี้:

ขั้นตอนที่ 1: ติดตั้ง Elasticsearch

ประการแรก คุณต้องติดตั้ง Elasticsearch บนเซิร์ฟเวอร์ของคุณหรือใช้ Elasticsearch บริการคลาวด์ เช่น Elastic Cloud เยี่ยมชม Elasticsearch เว็บไซต์อย่างเป็นทางการเพื่อดาวน์โหลดเวอร์ชันที่เหมาะสมและทำตามคำแนะนำในการติดตั้ง

ขั้นตอนที่ 2: ติดตั้ง Elasticsearch Package สำหรับ Laravel

ถัดไป ติดตั้ง Elasticsearch แพ็คเกจสำหรับ Laravel. มีแพ็คเกจต่างๆ ที่รองรับ Elasticsearch ใน Laravel แต่แพ็คเกจหนึ่งที่ได้รับความนิยมคือ " Laravel Scout " ในการติดตั้ง Laravel Scout ให้เปิด terminal และรันคำสั่งต่อไปนี้:

composer require laravel/scout

ขั้นตอนที่ 3: กำหนดค่า Elasticsearch ใน Laravel

หลังจากติดตั้ง Laravel Scout คุณต้องกำหนดค่าเพื่อใช้ Elasticsearch เป็นเครื่องมือค้นหาเริ่มต้น เปิดไฟล์ .env Laravel และเพิ่มพารามิเตอร์การกำหนดค่าต่อไปนี้:

SCOUT_DRIVER=elasticsearch  
SCOUT_ELASTICSEARCH_HOSTS=http://localhost:9200  

SCOUT_DRIVER กำหนดเครื่องมือค้นหาที่ Laravel Scout ใช้และ SCOUT_ELASTICSEARCH_HOSTS ระบุ Elasticsearch URL ที่ลูกเสือจะเชื่อมต่อ ที่ไหน

ขั้นตอนที่ 4: เรียกใช้ Migration

ถัดไป เรียกใช้ migration เพื่อสร้างตาราง "ที่ค้นหาได้" สำหรับรุ่นที่คุณต้องการค้นหา Elasticsearch ใน ใช้คำสั่งต่อไปนี้:

php artisan migrate

ขั้นตอนที่ 5: กำหนดโมเดลและกำหนดคำอธิบายที่สามารถค้นหาได้

สุดท้าย ในโมเดลที่คุณต้องการค้นหา ให้เพิ่ม Searchable คุณลักษณะและกำหนดคำอธิบายที่ค้นหาได้สำหรับแต่ละโมเดล ตัวอย่างเช่น:

use Laravel\Scout\Searchable;  
  
class Product extends Model  
{  
    use Searchable;  
  
    public function toSearchableArray()  
    {  
        return [  
            'id' => $this->id,  
            'name' => $this->name,  
            'description' => $this->description,  
            // Add other searchable fields if needed  
        ];  
    }  
}  

ขั้นตอนที่ 6: ซิงโครไนซ์ข้อมูลกับ Elasticsearch

หลังจากกำหนดค่าและกำหนดโมเดลที่ค้นหาได้แล้ว ให้รันคำสั่งเพื่อซิงโครไนซ์ข้อมูลจากฐานข้อมูลของคุณไปที่ Elasticsearch:

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

เมื่อเสร็จแล้ว Elasticsearch ได้ถูกรวมเข้ากับ Laravel และคุณสามารถเริ่มใช้คุณลักษณะการค้นหาในแอปพลิเคชันของคุณ