การตั้งค่าและใช้งาน Meilisearch Search Engine บน ServBay
Meilisearch คือระบบค้นหาแบบโอเพ่นซอร์สที่ทรงพลัง รวดเร็ว และใช้งานง่าย ออกแบบมาสำหรับมอบประสบการณ์ “พิมพ์-ปุ๊บ-เจอ” ที่ยอดเยี่ยม พร้อมฟีเจอร์หลากหลายผ่าน RESTful API ที่เป็นมิตร ด้วย ServBay คุณสามารถติดตั้งและรัน Meilisearch บน macOS สำหรับการพัฒนาในเครื่องได้อย่างง่ายดายและสมบูรณ์แบบ
ภาพรวม
ServBay ผสาน Meilisearch เข้ากับอินเทอร์เฟซการจัดการแบบกราฟิก ให้คุณติดตั้งและตั้งค่าได้ง่าย ๆ ด้วยคลิกเดียว ไม่ต้องยุ่งยากกับคำสั่งและการติดตั้ง dependency ต่าง ๆ นอกจากนี้ ServBay ยังตั้งค่าแดชบอร์ดเว็บของ Meilisearch ให้พร้อมใช้งานทันทีผ่านโดเมน https://meilisearch.servbay.host/
ที่ใช้งานสะดวกสำหรับจัดการ index, ทดสอบค้นหา และตรวจสอบสถานะ instance
ข้อกำหนดเบื้องต้น
- macOS ของคุณต้องติดตั้งและรัน ServBay เรียบร้อยแล้ว
- มีโปรเจคที่ต้องการเพิ่มฟังก์ชันการค้นหา
- มีความเข้าใจพื้นฐานเรื่อง search engine (เช่น Index, Document, API Key)
ขั้นตอนการใช้งาน
1. ติดตั้งแพ็กเกจ Meilisearch
เริ่มต้นโดยติดตั้ง Meilisearch ในหน้าจัดการแพ็กเกจของ ServBay:
- เปิดแอปพลิเคชัน ServBay
- คลิกที่ Packages (ซอฟต์แวร์แพ็กเกจ) บริเวณแถบด้านซ้าย
- หา
ค้นหา
-Meilisearch
ในรายการแพ็กเกจ - คลิกปุ่มติดตั้งที่ด้านขวาของ
Meilisearch
และรอจนติดตั้งเสร็จสมบูรณ์ - คลิกปุ่มเปิดใช้งาน (Enable) เพื่อเริ่มบริการ
Meilisearch
2. ตั้งค่า Meilisearch Service
เมื่อติดตั้งเสร็จแล้ว คุณสามารถตั้งค่ารายละเอียดของ Meilisearch ได้:
ไปที่เมนู Search ทางแถบซ้ายของ ServBay
เลือก Meilisearch ในเมนูย่อย เพื่อเข้าสู่หน้าตั้งค่า
ปรับแต่งค่าต่าง ๆ ได้ตามต้องการ:
- Bind IP (IP ที่จะฟัง): กำหนดว่า Meilisearch จะรันอยู่บน IP อะไร ค่าเริ่มต้น
127.0.0.1
(เฉพาะใช้งานในเครื่อง) ซึ่งปลอดภัยที่สุดสำหรับการพัฒนา - Port (พอร์ต): กำหนดพอร์ตของ API Meilisearch ค่าเริ่มต้นคือ
7700
แม้บริการจะทำงานที่พอร์ตนี้ แต่แนะนำให้เข้าผ่านhttps://meilisearch.servbay.host
ที่ ServBay ให้ไว้ - Master Key (กุญแจหลัก): คูปองที่สำคัญที่สุดในการป้องกัน Meilisearch ของคุณ ทุก API Request (สร้าง, แก้ไข, ลบ index ฯลฯ) ต้องใช้กุญแจนี้ กรุณากำหนดกุญแจที่แข็งแกร่งและไม่ซ้ำใคร, และเก็บไว้อย่างปลอดภัย
- Data Path (ตำแหน่งข้อมูล): โฟลเดอร์ภายในเครื่องที่เก็บไฟล์ index และฐานข้อมูล ค่าเริ่มต้นคือ
/Applications/ServBay/data/meilisearch
คลิกไอคอนโฟลเดอร์ขวาเพื่อเปิดใน Finder ได้ทันที - Runtime Environment (สภาพแวดล้อมที่รัน): เลือก
Development
(สำหรับพัฒนา) หรือProduction
(สำหรับใช้งานจริง) — โหมด Development จะมี log และข้อมูล debug ละเอียด ช่วยระหว่างพัฒนา ส่วน Production จะเน้นความเร็วและความปลอดภัย เปิดเผยรายละเอียดน้อยลง - Log Level (ระดับ Log): กำหนดความละเอียดของ log ที่จะถูกบันทึก มีตัวเลือก
INFO
,DEBUG
,WARN
,ERROR
รวมถึงใช้สำหรับดีบั๊ก
- Bind IP (IP ที่จะฟัง): กำหนดว่า Meilisearch จะรันอยู่บน IP อะไร ค่าเริ่มต้น
3. บันทึกการตั้งค่าและเริ่มบริการ
- เมื่อปรับค่าทุกอย่างแล้ว กดปุ่ม Save (บันทึก) มุมขวาล่าง
- ServBay จะนำค่าของคุณไปใช้งานทันทีและพยายามเริ่ม/รีสตาร์ทบริการ Meilisearch ให้โดยอัตโนมัติ
- ดูแถบสถานะข้างชื่อ Meilisearch หากมีไฟสีเขียวแสดงว่ารันสำเร็จแล้ว
4. เข้าใช้งานแดชบอร์ดเว็บ Meilisearch
ServBay มีทางเข้าแดชบอร์ด Meilisearch ที่ใช้สะดวกมาก:
วิธีที่ 1 (แนะนำ): ที่หน้าตั้งค่า Meilisearch มุมขวาบน คลิกไอคอนเบราว์เซอร์ (รูปเข็มทิศ) ServBay จะเปิดแดชบอร์ดนี้ในเบราว์เซอร์หลักของคุณโดยอัตโนมัติ
วิธีที่ 2: พิมพ์
https://meilisearch.servbay.host/
ที่ address bar ของเบราว์เซอร์โดยตรง
ในแดชบอร์ดนี้ คุณสามารถ:
- สร้างและจัดการ index
- ทดสอบการค้นหาและดูผลลัพธ์แบบเห็นภาพ
- ตรวจสอบสถานะงานต่าง ๆ (เช่น การเพิ่ม document หรืออัปเดต setting)
- จัดการ API Key
5. การนำ Meilisearch ไปใช้ในแอปของคุณ
คุณสามารถใช้ client library ของ Meilisearch ที่เป็นทางการหรือจากชุมชนใด ๆ สำหรับเชื่อมต่อกับ instance บนเครื่อง
ใช้ข้อมูลต่อไปนี้ขณะเชื่อมต่อ:
- Host (โฮสต์):
https://meilisearch.servbay.host
(โปรดรวมhttps://
) - API Key (API กุญแจ): Master Key ที่คุณตั้งไว้ในข้อ 2
ตัวอย่างโค้ด PHP (ใช้ meilisearch/meilisearch-php
)
เริ่มโดยติดตั้งไลบรารี client ในโปรเจค PHP:
bash
composer require meilisearch/meilisearch-php
1
จากนั้นเชื่อมต่อและเรียกใช้งานในโค้ดของคุณ:
php
<?php
require_once 'vendor/autoload.php';
use MeiliSearch\Client;
// // Initialize Meilisearch client
$client = new Client('https://meilisearch.servbay.host', 'YOUR-STRONG-MASTER-KEY'); // เปลี่ยนเป็น Master Key ของคุณ
try {
// 1. สร้างหรือดึง index
$index = $client->index('movies');
// 2. เพิ่มเอกสาร
$documents = [
['id' => 1, 'title' => 'Carol', 'genres' => ['Romance', 'Drama']],
['id' => 2, 'title' => 'Wonder Woman', 'genres' => ['Action', 'Adventure']],
['id' => 3, 'title' => 'Life of Pi', 'genres' => ['Adventure', 'Drama']],
['id' => 4, 'title' => 'Mad Max: Fury Road', 'genres' => ['Action', 'Adventure']],
['id' => 5, 'title' => 'Moana', 'genres' => ['Fantasy', 'Action']],
['id' => 6, 'title' => 'Philadelphia', 'genres' => ['Drama']],
];
$index->addDocuments($documents);
echo "เพิ่มเอกสารลงใน index 'movies' เรียบร้อยแล้ว\n";
// รอสักครู่เพื่อให้ Meilisearch ประมวลผลงาน index เสร็จ
sleep(1);
// 3. ทดสอบการค้นหา
$searchResults = $index->search('max');
print_r($searchResults->getHits());
} catch (\Exception $e) {
echo "Meilisearch Error: {$e->getMessage()}\n";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
คำถามที่พบบ่อย (FAQ)
- ถาม: ลืม Master Key ทำไงดี?
- ตอบ: ไปที่หน้าตั้งค่า Meilisearch ใน ServBay แล้วกรอก Master Key ใหม่ จากนั้นกด Save (บันทึก) ServBay จะรีสตาร์ทบริการให้และใช้กุญแจใหม่ทันที
- ถาม: Meilisearch บู๊ตไม่ติด ตรวจสอบอย่างไร?
- ตอบ: คลิกไอคอน log ที่มุมขวาบนหน้า Meilisearch เพื่อตรวจสอบ log แบบ real-time ซึ่งโดยมากจะอธิบายปัญหาชัดเจน นอกจากนี้อย่าลืมเช็คว่าพอร์ต
7700
ไม่ซ้ำกับแอปอื่น
- ตอบ: คลิกไอคอน log ที่มุมขวาบนหน้า Meilisearch เพื่อตรวจสอบ log แบบ real-time ซึ่งโดยมากจะอธิบายปัญหาชัดเจน นอกจากนี้อย่าลืมเช็คว่าพอร์ต
- ถาม: โหมด
Development
และProduction
ต่างกันอย่างไร?- ตอบ:
Development
(พัฒนา) จะตอบสนอง API พร้อม stack trace และ debug ที่ละเอียด ทำให้ง่ายต่อการแก้ไขข้อผิดพลาด โดยอาจโชว์รายละเอียดระบบมากกว่า ส่วนProduction
(ใช้งานจริง) จะซ่อนรายละเอียดเหล่านี้ เพิ่มความปลอดภัยและพรีเมียร์ เหมาะกับระบบที่ใช้งานจริง หรือเมื่อไม่ต้อง debug แล้ว
- ตอบ:
สรุป
การใช้งานร่วมกันของ ServBay และ Meilisearch ช่วยมอบประสบการณ์การพัฒนาระบบค้นหาในเครื่องบน macOS ที่ทรงพลัง ง่าย ไม่ยุ่งยาก ด้วยอินเทอร์เฟซจัดการแบบกราฟิกและแดชบอร์ดสำเร็จรูป คุณจึงโฟกัสกับการพัฒนาฟีเจอร์ค้นหาในแอปของคุณได้เต็มที่ ไม่ต้องเสียเวลากับปัญหาการเซ็ตอัพระบบ