Pasukan kejuruteraan di sebalik perkhidmatan hos video telah menukar indeks SQLite FTS5 mereka kepada kluster OpenSearch, mengurangkan pertanyaan tanpa hasil daripada 12% kepada 1.4% dan meningkatkan kadar carian-ke-klik sebanyak 9% sambil mengekalkan kependaman di bawah 28 ms.

Mengapa pertukaran ini menjadi mendesak

Sambungan carian teks penuh SQLite (FTS5) sangat menarik: ia berada dalam fail yang sama dengan data lain, tidak melibatkan kos pelesenan, dan memulangkan padanan secara serta-merta untuk padanan token yang tepat. Walau bagaimanapun, log platform menunjukkan bahawa kira-kira 12% carian pengguna tidak memulangkan sebarang hasil. Ejaan yang salah seperti “intersteller” atau “avengrs endgame” – jenis kesilapan taip yang sering dilakukan pada papan kekunci mudah alih – merupakan punca utamanya.

Satu penyelesaian pantas menggunakan trigram (fragmen tiga aksara) telah menurunkan kadar carian kosong kepada 7%, tetapi ia menimbulkan dua masalah. Pertama, saiz indeks melonjak kepada lebih tiga kali ganda saiz asalnya, sekali gus meningkatkan kos storan dan melambatkan proses kemas kini. Kedua, tahap relevansi terjejas; padanan kabur (fuzzy matching) memulangkan campuran video yang tidak berkaitan, yang mengelirukan pengguna dan bukannya membantu mereka.

Pasukan tersebut menyimpulkan bahawa enjin carian yang dibina khusus, dengan toleransi kesilapan taip (typo-tolerance) asli dan skor relevansi yang canggih, amat diperlukan.

Membina saluran paip OpenSearch

Kekalkan SQLite sebagai sumber kebenaran (source of truth)

OpenSearch berfungsi sebagai replika baca-sahaja yang boleh dibuang. Semua metadata video kekal dalam SQLite; indeks carian boleh dibina semula tanpa risiko kehilangan data. Apabila kluster OpenSearch tergendala, aplikasi akan beralih kembali ke enjin FTS5 asal secara automatik.

Relevansi berlapis dengan pertanyaan “should”

Daripada hanya bergantung kepada padanan kabur, pertanyaan tersebut menggabungkan tiga klausa:

  • Padanan frasa tepat – lonjakan (boost) tertinggi, memberi ganjaran kepada pengguna yang menaip tajuk dengan betul.
  • Semua istilah hadir – lonjakan sederhana, menangkap pertanyaan di mana setiap perkataan muncul tetapi tidak semestinya mengikut urutan.
  • Padanan kabur (Fuzzy match) – lonjakan rendah, bertindak sebagai jaring keselamatan untuk token yang salah eja.

Hierarki ini mengekalkan ketepatan bagi pertanyaan yang bersih sambil tetap menawarkan sandaran (fallback) yang fleksibel untuk kesilapan taip.

Menala tetapan kabur (fuzzy settings)

Panjang awalan (prefix length) sebanyak 1 memaksa aksara pertama setiap istilah untuk dipadankan sebelum logik kabur bermula. Peraturan ini memastikan carian kekal pantas dan menghalang lambakan istilah calon yang boleh membebankan memori. Pasukan tersebut juga mengehadkan jumlah maksimum pengembangan istilah, satu lagi langkah kawalan terhadap penggunaan sumber yang tidak terkawal.

Strategi penyinkronan

Tiga proses pelengkap memastikan indeks OpenSearch selaras dengan SQLite:

  • Tugas cron untuk menyinkronkan data baharu.
  • Laluan perbezaan (diff pass) setiap malam – mengimbas ketidakpadanan yang terlepas daripada kemas kini berperingkat.
  • Bina semula penuh setiap minggu – dijalankan di sebalik alias indeks, kemudian menukar alias tersebut dalam satu operasi tunggal, menjamin sifar masa henti (zero downtime).

Impak yang boleh diukur selepas dua minggu

  • Pertanyaan tanpa hasil jatuh daripada 12% kepada 1.4%.
  • Penukaran carian-ke-klik meningkat sebanyak 9%.
  • Median kependaman kekal di bawah 28 ms, jauh di dalam sasaran pengalaman pengguna platform tersebut.

Amaran dan hujah balas

Migrasi ini bukanlah naik taraf "pasang dan pakai" (plug-and-play). Pasukan tersebut menegaskan bahawa pangkalan data utama tidak seharusnya digantikan oleh enjin carian; SQLite kekal sebagai stor autoritatif untuk semua metadata video.

Kesimpulan

Menambah toleransi kesilapan taip melalui enjin carian yang dibina khusus telah mengubah jalan buntu yang ketara dalam perjalanan pengguna kepada pengalaman yang lancar dan pantas. Kajian kes ini menunjukkan bahawa seni bina yang berdisiplin – mengekalkan stor relasi sebagai sumber kebenaran, melapiskan relevansi, dan melindungi logik kabur – dapat memberikan peningkatan yang boleh diukur tanpa mengorbankan kestabilan.

Sumber: https://dev.to/ahmet_gedik778845/migrating-video-title-search-from-sqlite-fts5-to-opensearch-fuzzy-queries-4bhj