ฉันต้องการเข้าใจตรรกะหรืออัลกอริทึมที่อยู่เบื้องหลังฟังก์ชันการค้นหาใน Magento Connect เมื่อตัวเลือกเรียงตามในการค้นหาอย่างละเอียดถูกตั้งค่าให้จัดเรียงตาม Relavence
ฉันต้องการเข้าใจตรรกะหรืออัลกอริทึมที่อยู่เบื้องหลังฟังก์ชันการค้นหาใน Magento Connect เมื่อตัวเลือกเรียงตามในการค้นหาอย่างละเอียดถูกตั้งค่าให้จัดเรียงตาม Relavence
คำตอบ:
ฉันคิดว่าการค้นหานั้นถูกใช้งานโดยใช้ดัชนี MySQL FULLTEXT
นี่คือใบเสนอราคาจากเอกสารอย่างเป็นทางการของ MySQL เกี่ยวกับการทำงานของดัชนี:
แถวที่ถูกส่งคืนจะถูกจัดเรียงโดยอัตโนมัติพร้อมกับความเกี่ยวข้องสูงสุดก่อน ค่าความเกี่ยวข้องเป็นตัวเลขทศนิยมที่ไม่ใช่ค่าลบ ความเกี่ยวข้องเป็นศูนย์หมายความว่าไม่มีความคล้ายคลึงกัน คำนวณความเกี่ยวข้องตามจำนวนคำในแถวจำนวนคำที่ไม่ซ้ำในแถวนั้นจำนวนคำทั้งหมดในคอลเลกชันและจำนวนเอกสาร (แถว) ที่มีคำเฉพาะ
เพื่อเป็นการพิสูจน์ว่าคุณสามารถลองทำการค้นหาบนเว็บไซต์ Magento Connect โดยใช้คำค้นหาต่อไปนี้:
สำหรับเทอมแรกผลลัพธ์แรกคือโมดูลที่มีหัวเรื่อง:
สำหรับวินาที:
สำหรับอันสุดท้าย:
อย่างที่คุณเห็นในทุกกรณีรายการแรกมีคำค้นหามากกว่าหนึ่งรายการในชื่อเพื่อให้ความเกี่ยวข้องของพวกเขานั้นสูงขึ้น
ดูเหมือนว่าการค้นหาของ Magento Connect จะทำงานอย่างไร
ในขณะที่ Magento.com สร้างขึ้นบน Drupal ดูเหมือนว่า Magento Connect จะใช้ Magento อย่างน้อยก็เป็นพื้นฐาน
magento-connect/catalogsearch/result/?q=TERM
ไฟล์ JavaScript ที่ใช้:
พา ธ ไปยังไฟล์ CSS เช่นhttp://www.magentocommerce.com/magento-connect/skin/frontend/enterprise/connect/css/base.cssด้วยสิทธิ์ใช้งานของส่วนหัวที่มี:
* @category design
* @package enterprise_connect
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
* @license http://www.magentocommerce.com/license/enterprise-edition
ด้วยข้อมูลนี้เราสามารถยืนยันได้ว่าการค้นหาใช้วิธีเดียวกันกับ Magento Enterprise ตอนนี้มีความเป็นไปได้หลายอย่าง:
อย่างที่คุณสามารถดูว่าคุณค้นหาชุดค่าผสมของคำค้นหาโดยพลการหรือไม่นั้นไม่ใช่การLIKE
ค้นหาเริ่มต้นสำหรับOR
ทุกคนที่ไม่ชอบ ดังนั้นอาจเป็นการค้นหาแบบเต็มคำสั่งตามความเกี่ยวข้องโดยค่าเริ่มต้นตามที่แนะนำโดย @alex_b หรือการค้นหา Solr ของโมดูล Enterprise_Search ซึ่งฉันอาจไม่ได้รับอนุญาตให้เปิดเผยรายละเอียด