Hybrid search
การค้นที่ยิงทั้งแบบจับคู่คำตรงตัวและแบบเข้าใจความหมายในคำขอเดียว แล้วรวมคะแนนสองชุดเป็นอันดับเดียว เพราะรหัสสินค้ากับคำถามภาษาคนถนัดคนละวิธี
Hybrid search คือการค้นข้อมูลที่ยิงคำค้นเดียวออกไปสองทางพร้อมกัน ทางหนึ่งคือการจับคู่คำตรงตัวแบบที่ระบบค้นหาทำกันมานาน อีกทางหนึ่งคือการค้นด้วยความหมายที่เทียบความใกล้เคียงของ embedding เป็นตัวเลข จากนั้นเอาผลลัพธ์สองชุดมารวมเป็นอันดับเดียวก่อนส่งกลับให้ผู้ใช้ เอกสารของ Azure AI Search นิยามไว้ว่า hybrid search คือคำขอค้นหาเพียงคำขอเดียวที่ตั้งค่าให้ทำทั้ง full-text query และ vector query โดยรันขนานกันแล้วรวมผลด้วยวิธีที่ชื่อ Reciprocal Rank Fusion (RRF) ฝั่ง Weaviate ซึ่งเป็น vector-database ก็อธิบายในทำนองเดียวกันว่า hybrid search รวมการค้นแบบ vector เข้ากับการค้นคำตรงตัวแบบ BM25 เพื่อดึงจุดแข็งของทั้งสองวิธีมาใช้ด้วยกัน เหตุผลที่ต้องใช้สองทางแทนที่จะเลือกทางเดียว เอกสารของ Azure สรุปว่าข้อได้เปรียบของ vector search คือหาข้อมูลที่ใกล้เคียงกันเชิงแนวคิดได้แม้ไม่มีคำไหนตรงกันเลย ส่วนข้อได้เปรียบของการค้นคำตรงตัวคือความแม่น และยกตัวอย่างงานที่ค้นคำตรงตัวได้ผลดีกว่า เช่น การค้นรหัสสินค้า ศัพท์เฉพาะทางที่เจาะจงมาก วันที่ และชื่อคน เพราะวิธีนี้ระบุคู่ที่ตรงกันเป๊ะได้
กลไกการรวมคะแนนคือหัวใจของคำนี้ และเอกสารของแต่ละบริการที่อ้างถึงในหน้านี้ก็มีวิธีรวมคะแนนให้เลือกไม่เหมือนกัน บางเจ้าใช้วิธีที่ชื่อเดียวกันแต่ตั้งค่าคงที่ในสูตรไว้คนละค่า บางเจ้าตั้งชื่อวิธีของตัวเองขึ้นมาเอง เอกสาร RRF ของ Azure AI Search อธิบายว่าระบบจะให้คะแนนเอกสารแต่ละชิ้นตามตำแหน่งที่มันอยู่ในแต่ละรายการด้วยสูตร 1/(rank + k) แล้วบวกคะแนนจากทุกรายการเข้าด้วยกันเป็นคะแนนรวม ก่อนเรียงลำดับใหม่ตามคะแนนรวมนั้น หน้าเดียวกันระบุว่า k คือค่าคงที่ในสูตร และการทดลองแสดงว่าอัลกอริทึมทำงานได้ดีที่สุดเมื่อตั้ง k เป็นค่าน้อยๆ เช่น 60 พร้อมย้ำว่า k ตัวนี้เป็นคนละตัวกับ k ที่ใช้กำหนดจำนวนเพื่อนบ้านใกล้เคียงในฝั่ง vector ด้าน Qdrant มีให้เลือกสองวิธีคือ Reciprocal Rank Fusion (RRF) กับ Distribution-Based Score Fusion (DBSF) โดยเอกสารระบุว่า k ของ RRF ตั้งไว้ที่ 2 เป็นค่าตั้งต้นและปรับได้ตั้งแต่รุ่น v1.16.0 ส่วน DBSF จะปรับการกระจายตัวของคะแนนดิบให้เทียบกันได้ก่อนแล้วจึงรวม ขณะที่ Weaviate เรียกวิธีของตัวเองว่า relativeScoreFusion กับ rankedFusion โดยแบบแรกเป็นค่าตั้งต้นตั้งแต่รุ่น v1.24 และแบบหลังเป็นค่าตั้งต้นในรุ่น v1.23 ลงไป relativeScoreFusion จะปรับคะแนนของแต่ละฝั่งให้ค่าสูงสุดกลายเป็น 1 ค่าต่ำสุดกลายเป็น 0 ส่วน rankedFusion ให้คะแนนตามตำแหน่งอันดับล้วนๆ ซึ่งเอกสารของ Weaviate เขียนไว้ว่า relativeScoreFusion เก็บข้อมูลจากการค้นตั้งต้นไว้ได้มากกว่า rankedFusion ที่เก็บไว้แค่ลำดับ นอกจากนี้ Weaviate ยังมีตัวถ่วงน้ำหนักชื่อ alpha โดย alpha เท่ากับ 1 คือค้นด้วย vector ล้วน และ alpha เท่ากับ 0 คือค้นคำตรงตัวล้วน หน้าอธิบายแนวคิดระบุว่า 0.75 เป็นค่าตั้งต้นฝั่ง server ซึ่งมีผลเฉพาะเมื่อคำขอเดินทางมาถึง Weaviate โดยไม่มีค่า alpha ติดมาด้วย ส่วนหน้าคู่มือการค้นเตือนไว้ว่าถ้าไม่ตั้ง alpha เอง น้ำหนักที่ได้จริงขึ้นอยู่กับ client ที่ใช้
คนทำงานส่วนใหญ่ไม่ได้เขียนสูตรพวกนี้เอง แต่เจอ hybrid search ในฐานะตัวเลือกหนึ่งในหน้าตั้งค่าของระบบที่องค์กรซื้อมาใช้ ตัวอย่างที่เห็นชัดคือ knowledge base ของ amazon-bedrock ที่ให้เลือกชนิดการค้นสามแบบ ได้แก่ Default ซึ่งปล่อยให้ Bedrock ตัดสินใจกลยุทธ์ให้เอง Hybrid ซึ่งค้นทั้ง vector embeddings และตัวข้อความดิบ และ Semantic ซึ่งค้นเฉพาะ vector embeddings จุดที่ต้องอ่านให้จบคือหน้าเดียวกันกำกับไว้ว่า hybrid search รองรับเฉพาะ vector store ที่เป็น Amazon RDS, Amazon OpenSearch Serverless และ MongoDB ที่มี filterable text field เท่านั้น และถ้าใช้ vector store อื่นหรือ vector store นั้นไม่มี filterable text field คำค้นจะถูกเปลี่ยนไปใช้ semantic search แทน แปลว่าติ๊กช่อง hybrid ไว้แล้วก็ยังต้องตรวจว่าที่เก็บข้อมูลของเราเข้าเงื่อนไขจริงไหม อีกข้อที่เอกสารของ Azure เตือนคือถ้าสั่งเรียงลำดับผลลัพธ์เองแบบตายตัว การเรียงนั้นจะไปทับอันดับที่มาจากคะแนนความเกี่ยวข้อง ดังนั้นถ้าอยากได้อันดับตามความเกี่ยวข้องก็อย่าใส่การเรียงลำดับเข้าไปในคำค้น ส่วนการจะรู้ว่าเปิด hybrid แล้วดีขึ้นจริงหรือไม่ต้องวัดด้วย evals กับชุดคำถามจริงขององค์กร เอกสารของ Qdrant เองแนะนำให้เริ่มจาก RRF ในฐานะตัวตั้งต้นที่ปลอดภัยเมื่อยังไม่มีทั้งชุดวัดผลและเหตุผลหนักแน่นที่จะเชื่อคะแนนดิบของแต่ละฝั่ง และถ้าเอาไปต่อกับ rag คุณภาพคำตอบยังขึ้นกับการตัดเอกสารเป็นท่อนแบบ chunking และการ grounding คำตอบกับเอกสารที่ค้นเจอด้วย ไม่ได้จบที่วิธีรวมคะแนนอย่างเดียว
ตัวอย่างจากบทสนทนาจริง
หัวหน้าฝ่ายขาย: ตั้งแต่ย้ายมาใช้ระบบค้นเอกสารตัวใหม่ที่บอกว่าฉลาดขึ้น พิมพ์คำถามยาวๆ ก็เจอดีนะ แต่พอพิมพ์รหัสรุ่น TX-4180 กลับได้เอกสารที่ไม่เกี่ยวเลย ทั้งที่ระบบเดิมค้นเจอตั้งแต่บรรทัดแรก
คนดูแลระบบ: อาการนี้เจอบ่อยกับระบบที่ค้นด้วยความหมายอย่างเดียวครับ มันเก่งเรื่องจับใจความว่าประโยคไหนใกล้เคียงกัน แต่รหัสรุ่นหรือชื่อเฉพาะที่ต้องตรงเป๊ะเป็นงานที่การจับคู่คำตรงตัวทำได้ดีกว่า ทางแก้คือเปิด hybrid search ให้ยิงสองทางพร้อมกันแล้วรวมคะแนน รหัสรุ่นจะมีโอกาสกลับขึ้นมาติดอันดับจากฝั่งคำตรงตัว ส่วนคำถามยาวๆ ยังได้ผลจากฝั่งความหมายเหมือนเดิม แต่อันดับสุดท้ายขึ้นกับวิธีรวมคะแนนของระบบที่ใช้ ต้องวัดผลจริงถึงจะรู้ว่าดีขึ้นแค่ไหน
หัวหน้าฝ่ายขาย: ต้องซื้อของเพิ่มไหมครับ
คนดูแลระบบ: ส่วนใหญ่เป็นตัวเลือกที่มีอยู่แล้วในระบบค้นที่เราใช้ครับ แต่ต้องอ่านเงื่อนไขของแต่ละเจ้าให้ครบ บางเจ้าเปิด hybrid ได้เฉพาะเมื่อที่เก็บข้อมูลตรงตามที่เขากำหนด ถ้าไม่ตรงมันจะถอยกลับไปค้นด้วยความหมายอย่างเดียว ผมขอลองตั้งค่าแล้ววัดผลกับคำค้นจริงของทีมขายสักชุดก่อนนะครับ
ระวังสับสนกับ
- semantic-search : semantic search คือการค้นด้วยความหมายซึ่งเป็นครึ่งหนึ่งของสูตร ส่วน hybrid search คือการเอาครึ่งนั้นมารวมกับการค้นคำตรงตัวแล้วหลอมคะแนนเป็นอันดับเดียว บนหน้าตั้งค่าของ Amazon Bedrock knowledge base ทั้งสองแบบนี้ยังเป็นตัวเลือกคนละอันที่ต้องเลือกเอง
- reranking : reranking คือขั้นที่มาทีหลัง โดยเอารายการที่ได้มาแล้วมาจัดอันดับใหม่อีกรอบ เอกสารของ Azure AI Search ระบุว่า semantic ranking เกิดขึ้นหลังการรวมผลด้วย RRF และรายงานคะแนนของมันแยกออกมาต่างหากในคำตอบ
- glean : Glean เป็นผลิตภัณฑ์ค้นหาข้อมูลในองค์กรที่พร้อมใช้งาน ส่วน hybrid search เป็นชื่อเทคนิคการค้นที่ทีมผู้พัฒนาระบบเลือกใช้ ไม่ใช่ผลิตภัณฑ์ที่ซื้อมาใช้ได้ทันที ระดับที่ผู้ใช้ปลายทางมองเห็นจึงต่างกัน ทีมที่ประกอบระบบค้นเองต่างหากที่ต้องเลือกวิธีรวมคะแนน
Sources (6)
- https://learn.microsoft.com/en-us/azure/search/hybrid-search-overview fetched 2026-08-15
- https://learn.microsoft.com/en-us/azure/search/hybrid-search-ranking fetched 2026-08-15
- https://docs.weaviate.io/weaviate/concepts/search/hybrid-search fetched 2026-08-15
- https://docs.weaviate.io/weaviate/search/hybrid fetched 2026-08-15
- https://qdrant.tech/documentation/concepts/hybrid-queries/ fetched 2026-08-15
- https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html fetched 2026-08-15
อ่านจบแล้วอยากตามเรื่อง AI แบบนี้ต่อทุกวัน เรามีสรุปข่าวภาษาไทยส่งทาง LINE ทุกเช้า กดเพิ่มเพื่อนไว้ได้เลย ไม่มีค่าใช้จ่าย