ฉันมีฐานข้อมูลขนาดใหญ่ (แถว 16M) ที่มีแฮชการรับรู้ภาพ
ฉันต้องการที่จะสามารถค้นหาแถวตามระยะทาง hammingในกรอบเวลาที่เหมาะสม
ในปัจจุบันเท่าที่ฉันเข้าใจปัญหาอย่างถูกต้องแล้วฉันคิดว่าตัวเลือกที่ดีที่สุดในที่นี้คือการติดตั้ง SP-GiST แบบกำหนดเองที่ใช้BK-Treeแต่ดูเหมือนว่าจะใช้งานได้มากและฉันก็ยังคลุมเครือในทางปฏิบัติ รายละเอียดของการปรับใช้ดัชนีที่กำหนดเองอย่างเหมาะสม การคำนวณระยะทาง Hamming คือเวไนยพอและผมทำรู้ C แม้ว่า
โดยพื้นฐานแล้ววิธีการที่เหมาะสมในที่นี้คืออะไร? ฉันต้องสามารถสอบถามการจับคู่ภายในระยะทางแก้ไขที่แน่นอนของแฮช ตามที่ผมเข้าใจมัน Levenshtein ระยะทางกับสตริงความยาวเท่ากันเป็นหน้าที่ hamming ระยะเพื่อให้มีอย่างน้อยบางส่วนสนับสนุนที่มีอยู่สำหรับสิ่งที่ฉันต้องการแม้ว่าจะไม่มีวิธีการที่ชัดเจนในการสร้างดัชนีจากมัน (จำค่าที่ผมสอบถาม การเปลี่ยนแปลงฉันไม่สามารถคำนวณระยะทางจากค่าคงที่ล่วงหน้าได้เนื่องจากจะมีประโยชน์สำหรับค่านั้นเท่านั้น
แฮชปัจจุบันถูกเก็บเป็นสตริง 64- ถ่านที่มีการเข้ารหัส ASCII แบบไบนารีของแฮช (เช่น "10010101 ... ") แต่ฉันสามารถแปลงให้เป็น int64 ได้อย่างง่ายดาย ปัญหาจริงคือฉันต้องสามารถสืบค้นได้ค่อนข้างเร็ว
ดูเหมือนว่าจะเป็นไปได้ที่จะบรรลุบางสิ่งบางอย่างตามแนวของสิ่งที่ฉันต้องการpg_trgm
แต่ฉันค่อนข้างชัดเจนว่าการจับคู่ mechamism ของ trigram ทำงานอย่างไร (โดยเฉพาะการวัดความคล้ายคลึงกันที่ส่งกลับมาเป็นตัวแทนจริง ๆ )ชนิดของระยะทางแก้ไข)
ประสิทธิภาพการแทรกไม่สำคัญ (ราคาแพงมากในการคำนวณแฮชสำหรับแต่ละแถว) ดังนั้นฉันจึงสนใจเกี่ยวกับการค้นหาเป็นหลัก