วิธีทำให้ ElasticPress แสดงผลลัพธ์ที่ถูกต้องตามภาษา
เรียนรู้วิธีตั้งค่าการค้นหาหลายภาษาบนเว็บไซต์ WordPress ที่ใช้งาน WPML และ ElasticPress ปลั๊กอินความเข้ากันได้ WPML ElasticPress จะสร้างดัชนี Elasticsearch แยกต่างหากสำหรับแต่ละภาษาบนเว็บไซต์ของคุณ เพื่อให้ผู้เยี่ยมชมที่ค้นหาจากเวอร์ชันภาษาฝรั่งเศสได้รับผลลัพธ์เป็นภาษาฝรั่งเศส โดยไม่ปะปนกับภาษาอังกฤษหรือภาษาญี่ปุ่น หน้านี้ครอบคลุมถึงการตั้งค่า การซิงค์ตามภาษา และที่สำคัญที่สุดคือวิธีตรวจสอบว่าการค้นหาแสดงผลลัพธ์ที่ถูกต้องในทุกภาษา
ไม่มีการดำเนินการใดที่ต้องแปลในการผสานการทำงานกับ ElasticPress ปลั๊กอินความเข้ากันได้จะทำให้ ElasticPress แสดงผลลัพธ์ที่ถูกต้องตามภาษาโดยอัตโนมัติ งานของคุณคือติดตั้งส่วนประกอบต่าง ๆ เรียกใช้การซิงค์เริ่มต้น และยืนยันว่าผลลัพธ์ดูถูกต้อง
ก่อนที่คุณจะเริ่มต้น
ติดตั้งและเปิดใช้งานปลั๊กอินเหล่านี้บนไซต์เดียวกัน:
- ElasticPress ปลั๊กอินโอเพนซอร์สฟรีจาก 10up ซึ่งมีให้ใช้งานบน WordPress.org
- ตัวหลักของ WPML และ WPML การแปลสตริง
- WPML ElasticPress ปลั๊กอินความเข้ากันได้ ดาวน์โหลดได้จากหน้าดาวน์โหลดในบัญชี WPML ของคุณ
คุณต้องมีตำแหน่งข้อมูล Elasticsearch ด้วยเช่นกัน: ไม่ว่าจะเป็นแบบโฮสต์เอง หรือบริการที่มีการจัดการ เช่น ElasticPress.io, Elastic Cloud หรือ AWS OpenSearch กำหนดค่า ElasticPress กับโฮสต์ Elasticsearch ของคุณและยืนยันว่าทำการทำดัชนีสำเร็จบนไซต์ภาษาเดียวก่อนที่จะเพิ่มเลเยอร์ WPML
กำหนดค่าภาษา WPML ของคุณก่อนที่จะเรียกใช้การซิงค์ครั้งแรก
การทำดัชนีตามภาษาทำงานอย่างไร
WPML ElasticPress จะสร้างดัชนี Elasticsearch แยกต่างหากสำหรับแต่ละภาษาบนไซต์ของคุณ ดัชนีของแต่ละภาษาจะประกอบด้วย:
- คำแปลในภาษานั้น สำหรับทุกประเภทโพสต์ที่แปลได้
- โพสต์ภาษาเริ่มต้น สำหรับประเภทโพสต์ใด ๆ ที่ตั้งค่าให้ใช้ภาษาเริ่มต้นเมื่อไม่มีคำแปล
- สำเนาของโพสต์ที่แปลไม่ได้ ดัชนีของทุกภาษาจะรวมสิ่งเหล่านี้ไว้เพื่อให้สามารถปรากฏในผลการค้นหาได้โดยไม่คำนึงถึงภาษาของผู้เยี่ยมชม
ทุกเอกสารในดัชนีภาษาจะได้รับการวิเคราะห์ในภาษานั้น คำหยุด การตัดคำให้อยู่ในรูปรากศัพท์ คำย่อ การจัดการพหูพจน์และกาล ล้วนมีความเฉพาะเจาะจงตามภาษา นี่คือสิ่งที่ทำให้การค้นหาภาษาฝรั่งเศสตรงกับรากศัพท์ภาษาฝรั่งเศส และการค้นหาภาษาญี่ปุ่นตรงกับสัณฐานวิทยาของภาษาญี่ปุ่น หากไม่มีการวิเคราะห์ตามภาษา เครื่องมือค้นหาจะนำกฎของภาษาหนึ่งไปใช้กับข้อความของภาษาอื่น ๆ ทั้งหมด
สำหรับการค้นหาของผู้เยี่ยมชมแต่ละราย WPML ElasticPress จะกำหนดเส้นทางคำค้นหาไปยังดัชนีภาษาที่ตรงกัน กลุ่มผลลัพธ์จะถูกกรองให้เป็นภาษาที่ถูกต้องก่อนที่การจัดอันดับความเกี่ยวข้องจะเริ่มต้นขึ้น
เรียกใช้การซิงค์เริ่มต้น
เมื่อเปิดใช้งานปลั๊กอินทั้งสี่ตัวและกำหนดค่าตำแหน่งข้อมูล Elasticsearch ใน ElasticPress แล้ว ให้เรียกใช้การซิงค์เริ่มต้น:
- ไปที่ ElasticPress > Sync ในหน้าจัดการเว็บไซต์ WordPress
- คลิก Start Sync
WPML ElasticPress จะทริกเกอร์การซิงค์หนึ่งครั้งต่อภาษา และสร้างดัชนีตามภาษาทีละรายการ ในเว็บไซต์ขนาดใหญ่ขั้นตอนนี้อาจใช้เวลาสองสามชั่วโมง โดยหน้าเพจจะรายงานความคืบหน้าในขณะที่การซิงค์ทำงาน
หากคุณกำลังอัปเดตจาก WPML ElasticPress 1.0 เป็น 2.0 หรือใหม่กว่า ให้ทำดัชนีใหม่ รูปแบบดัชนีมีการเปลี่ยนแปลงเมื่อเวอร์ชัน 2.0 นำเสนอการทำดัชนีตามภาษา
หลังจากการซิงค์เริ่มต้น การอัปเดตเนื้อหาจะไหลเข้าสู่ดัชนีที่ถูกต้องโดยอัตโนมัติ เมื่อใดก็ตามที่คุณสร้าง แก้ไข หรือลบโพสต์ WPML ElasticPress จะอัปเดตดัชนีภาษาที่สอดคล้องกันในเบื้องหลังตามภาษาของโพสต์นั้น หรือการตั้งค่าการแปลสำหรับประเภทโพสต์นั้น
การทำดัชนีภาษาเฉพาะด้วย WP-CLI
สำหรับไซต์ขนาดใหญ่ งานที่กำหนดเวลาไว้ สคริปต์การปรับใช้ หรือเวิร์กโฟลว์ใด ๆ ที่ไม่สามารถใช้ UI ของหน้าจัดการเว็บไซต์ได้ WPML ElasticPress มีคำสั่ง WP-CLI (wp wpml_elasticpress sync) ที่ครอบคลุมการซิงค์ CLI ของ ElasticPress เอง และเพิ่มแฟล็ก --post-lang สำหรับการเลือกภาษา
เรียกใช้การซิงค์เริ่มต้นสำหรับโพสต์ภาษาอังกฤษเท่านั้น:
wp wpml_elasticpress sync --setup --post-type=post --post-lang=en
แฟล็ก --setup จะล้างดัชนีที่มีอยู่ก่อนที่จะสร้างใหม่ หลังจากคำสั่งนี้ การค้นหาภาษาอังกฤษจะแสดงผลลัพธ์เป็นภาษาอังกฤษ การค้นหาจากภาษาอื่นจะไม่แสดงผลลัพธ์ใด ๆ เนื่องจากดัชนียังไม่ได้ถูกสร้างขึ้น
เพิ่มภาษาที่สองโดยไม่ต้องล้างดัชนีที่มีอยู่:
wp wpml_elasticpress sync --post-type=post --post-lang=fr
ทำซ้ำสำหรับแต่ละภาษาที่เพิ่มเข้ามา ละเว้น --setup เพื่อให้ภาษาที่ทำดัชนีไว้ก่อนหน้านี้ยังคงอยู่
ซิงค์หลายภาษาในการทำงานครั้งเดียว:
wp wpml_elasticpress sync --post-lang=en,es
ปรับขนาดชุดงานหากหน่วยความจำเหลือน้อย:
wp wpml_elasticpress sync --per-page=200
ขนาดชุดงานเริ่มต้นคือ 350 การลดขนาดจะช่วยได้ในเซิร์ฟเวอร์ที่มีข้อจำกัดด้านหน่วยความจำ
สร้างทุกดัชนีใหม่ตั้งแต่ต้น:
wp wpml_elasticpress sync --setup
คำสั่งนี้จะล้างดัชนีทุกภาษาและสร้างใหม่ทั้งหมด ใช้คำสั่งนี้เมื่อมีบางอย่างดูผิดปกติในทุกภาษา หรือหลังจากการอัปเกรดครั้งใหญ่
วิธีตรวจสอบว่าการค้นหาของ ElasticPress แสดงเนื้อหาในภาษาที่ถูกต้อง
การซิงค์ทางเทคนิคนั้นตรงไปตรงมา คุณค่าของหน้านี้อยู่ที่การตรวจสอบ ทำตามขั้นตอนการตรวจสอบเหล่านี้หลังจากการซิงค์เริ่มต้นเสร็จสิ้น และทำอีกครั้งทุกครั้งที่คุณเปลี่ยนแปลงเนื้อหาหรือการตั้งค่าที่ส่งผลต่อพฤติกรรมการค้นหา
1. การค้นหาแสดงผลลัพธ์ในภาษาเดียวกันจากแต่ละภาษา
จากส่วนหน้าเว็บไซต์ ให้สลับตัวสลับภาษาไปยังแต่ละภาษาตามลำดับ และค้นหาคำที่คุณทราบว่ามีอยู่ในรูปแบบที่แปลแล้ว
- ผ่าน หน้าผลลัพธ์แสดงเฉพาะโพสต์ในภาษานั้น
- ไม่ผ่าน ผลลัพธ์จากภาษาอื่นปรากฏขึ้นพร้อมกับรายการที่ตรงกันในภาษาเดียวกัน การซิงค์อาจยังไม่เสร็จสมบูรณ์สำหรับภาษานั้น ตรวจสอบ ElasticPress > Sync เพื่อหาข้อผิดพลาดและเรียกใช้คำสั่ง WP-CLI เฉพาะภาษาอีกครั้ง
2. เนื้อหาที่มีเฉพาะภาษาต้นทางจะไม่แสดงผลลัพธ์ในภาษาอื่น
เลือกโพสต์ที่มีอยู่เฉพาะในภาษาเริ่มต้นของคุณ โดยไม่มีคำแปลในภาษาอื่นบนไซต์ จากเวอร์ชันของไซต์ที่ไม่ใช่ภาษาเริ่มต้น ให้ค้นหาวลีจากโพสต์นั้น
- ผ่าน ไม่พบผลลัพธ์ โพสต์ไม่ได้แปลเป็นภาษาของผู้เยี่ยมชม ดังนั้นจึงไม่ควรปรากฏขึ้น
- ไม่ผ่าน โพสต์ปรากฏในผลลัพธ์ ซึ่งมักหมายความว่าประเภทโพสต์ถูกตั้งค่าให้ใช้ภาษาเริ่มต้นใน WPML > การตั้งค่า > การแปลประเภทโพสต์ นั่นคือการตั้งค่าระดับ WPML ไม่ใช่ข้อบกพร่อง หากคุณไม่ได้ตั้งใจให้มีการใช้ภาษาเริ่มต้น ให้เปลี่ยนการตั้งค่า
3. โพสต์ที่เกี่ยวข้องยังคงเป็นภาษาเดียวกัน
เปิดโพสต์ที่แปลแล้วในส่วนหน้าเว็บไซต์ วิดเจ็ต Related Posts ควรแสดงเฉพาะโพสต์อื่น ๆ ในภาษาเดียวกันเท่านั้น
- ผ่าน โพสต์ที่เกี่ยวข้องทุกรายการจะลิงก์ไปยังเนื้อหาในภาษาเดียวกันกับหน้าปัจจุบัน
- ไม่ผ่าน โพสต์ที่เกี่ยวข้องจากภาษาอื่นปรากฏขึ้น ยืนยันว่าฟีเจอร์ Related Posts เปิดใช้งานอยู่ใน ElasticPress > Features และดัชนีภาษาสำหรับภาษาปัจจุบันซิงค์เสร็จสิ้นแล้ว
4. การค้นหาเอกสารกรองตามภาษา
หากเปิดใช้งานฟีเจอร์ Documents ใน ElasticPress: ให้อัปโหลด PDF ที่แปลแล้วไปยังเวอร์ชันภาษาต้นทางของโพสต์ จากนั้นอัปโหลด PDF ภาษาอื่นไปยังคำแปลของโพสต์ ค้นหาวลีที่ปรากฏเฉพาะใน PDF ที่แปลแล้ว
- ผ่าน การค้นหาจากส่วนหน้าเว็บไซต์ในภาษาที่ตรงกันจะแสดง PDF ที่ถูกต้อง การค้นหาในภาษาต้นทางจะไม่แสดง PDF ที่แปลแล้ว และในทางกลับกัน
- ไม่ผ่าน PDF จากภาษาอื่นปรากฏในผลลัพธ์ ซิงค์อีกครั้งหลังจากเปิดใช้งาน Documents คำสั่ง
wp wpml_elasticpress sync --setupจะสร้างทุกดัชนีใหม่พร้อมกับการทำดัชนีเอกสาร
5. การค้นหาในระบบหลังบ้าน (Terms, Comments, Users) กรองตามภาษา
หากคุณเปิดใช้งานฟีเจอร์ Terms, Comments หรือ Users ใน ElasticPress > Features ให้ค้นหาจากหน้าจัดการเว็บไซต์ WordPress และยืนยันว่าผลลัพธ์ถูกกรองตามภาษาปัจจุบันของหน้าจัดการเว็บไซต์ สิ่งนี้ส่งผลต่อผู้ใช้ที่ค้นหาในระบบหลังบ้านของเว็บไซต์หลายภาษา
6. การซิงค์มัลติไซต์ไม่ล้างดัชนีของไซต์พี่น้อง
หากคุณใช้งาน WPML และ ElasticPress บนเครือข่ายมัลติไซต์ ให้เรียกใช้การซิงค์ดัชนีในไซต์หนึ่ง จากนั้นตรวจสอบไซต์อื่น ๆ ในเครือข่าย ดัชนีของไซต์เหล่านั้นควรยังคงอยู่ครบถ้วน
- ผ่าน การทำดัชนีไซต์หนึ่งจะไม่ส่งผลกระทบต่อดัชนีของไซต์พี่น้อง
- ไม่ผ่าน ดัชนีของไซต์พี่น้องว่างเปล่า ให้หยุด เรียกใช้การซิงค์อีกครั้งในไซต์ที่ได้รับผลกระทบ และรายงานปัญหาไปยังฝ่ายสนับสนุนของ WPML เพื่อให้สามารถยืนยันได้ว่าคุณกำลังพบปัญหามัลติไซต์ที่มีมาแต่เดิมหรือเป็นปัญหาใหม่
หากผ่านการตรวจสอบทุกข้อข้างต้น แสดงว่าการค้นหาหลายภาษาของคุณทำงานได้ตามที่ออกแบบไว้
ฟีเจอร์ของ ElasticPress ที่รองรับ
ปัจจุบัน WPML ElasticPress ทำให้ฟีเจอร์ของ ElasticPress ต่อไปนี้รองรับภาษา:
- Post Search การค้นหาในส่วนหน้าเว็บไซต์ครอบคลุมโพสต์ หน้า และประเภทโพสต์แบบกำหนดเอง
- Related Posts วิดเจ็ตโพสต์ที่เกี่ยวข้องจะกรองรายการที่ตรงกันในภาษาเดียวกัน
- Documents ค้นหาภายในไฟล์ PDF ที่แนบมา,
.docx,.pptxและไฟล์ประเภทอื่น ๆ - Terms, Comments และ Users การค้นหาในระบบหลังบ้าน
ฟีเจอร์การค้นหาเฉพาะของ WooCommerce ใน ElasticPress (การค้นพบผลิตภัณฑ์ การกรองผลิตภัณฑ์แบบหลายมุมมอง การค้นหาผลิตภัณฑ์ทันทีในแค็ตตาล็อก) ยังไม่รองรับหลายภาษาในขณะนี้ การรองรับหลายภาษาสำหรับการค้นหาของ WooCommerce อยู่ในแผนงานของ WPML จนกว่าจะถึงเวลานั้น การค้นหาของ WooCommerce บนเว็บไซต์หลายภาษาจะดำเนินการผ่านการจัดการมาตรฐานของ WooCommerce Multilingual ของ WPML ไม่ใช่ผ่าน ElasticPress
ข้อผิดพลาดที่พบบ่อย
- ไม่ได้เรียกใช้การซิงค์หลังจากเปิดใช้งานฟีเจอร์ใหม่ของ ElasticPress การเปิดใช้งาน Documents หรือ Related Posts ใน ElasticPress > Features จะไม่เพิ่มเอกสารเหล่านั้นลงในดัชนีย้อนหลัง ให้ซิงค์อีกครั้งหลังจากเปิดหรือปิดฟีเจอร์
- การซิงค์ WP-CLI โดยไม่มี
--setupหลังจากการเปลี่ยนแปลงครั้งใหญ่ หากคุณเปลี่ยนประเภทโพสต์ที่สามารถแปลได้ ฟีเจอร์ที่เปิดใช้งาน หรืออัปเกรด WPML ElasticPress ข้ามขอบเขตเวอร์ชันหลัก ให้เรียกใช้wp wpml_elasticpress sync --setupเพื่อสร้างทุกดัชนีใหม่ตั้งแต่ต้น - เทมเพลตผลการค้นหาของธีมข้ามตัวกรองของ ElasticPress ธีมแบบกำหนดเองบางธีมใช้คำค้นหาผลลัพธ์ของตนเองซึ่งไม่ผ่าน ElasticPress หากผลลัพธ์ดูผิดปกติเฉพาะในส่วนหน้าเว็บไซต์ (และผ่านการตรวจสอบในหน้าจัดการเว็บไซต์) เทมเพลตของธีมอาจต้องได้รับการอัปเดต
- การค้นหาผลิตภัณฑ์ WooCommerce แสดงผลลัพธ์ที่มีภาษาปะปนกัน นี่ไม่ใช่ปัญหาการซิงค์ แต่เป็นช่องว่างการรองรับ WooCommerce ตามที่กล่าวไว้ข้างต้น ในตอนนี้ให้กำหนดเส้นทางการค้นหาผลิตภัณฑ์ผ่านการจัดการมาตรฐานของ WooCommerce Multilingual
- ข้อความในเอกสารไม่ปรากฏในการค้นหา ยืนยันว่าฟีเจอร์ Documents เปิดใช้งานอยู่ใน ElasticPress > Features และมีการเรียกใช้การซิงค์ตั้งแต่เปิดใช้งาน
เขียนโดย Amir · อัปเดตล่าสุด 2 กรกฎาคม 2026
เขียนโดย Amir · อัปเดตล่าสุด 2 กรกฎาคม 2026