penelusuran teks fitur di MongoDB (seperti pada 2.6) tidak memiliki fitur bawaan untuk pencocokan string fuzzy/parsial. Seperti yang telah Anda catat, kasus penggunaan saat ini berfokus pada dukungan bahasa &stemming dengan operator boolean dasar dan pencocokan kata/frasa.
Ada beberapa pendekatan yang mungkin untuk dipertimbangkan untuk pencocokan fuzzy tergantung pada kebutuhan Anda dan bagaimana Anda ingin memenuhi syarat "efisien" (kecepatan, penyimpanan, waktu pengembang, infrastruktur yang diperlukan, dll):
-
Terapkan dukungan untuk pencocokan fuzzy/parsial dalam logika aplikasi Anda menggunakan beberapa algoritme mirip dan mirip yang tersedia. Manfaat dari pendekatan ini termasuk tidak perlu menambahkan infrastruktur tambahan dan dapat menyesuaikan dengan kebutuhan Anda.
Untuk beberapa contoh yang lebih detail, lihat:Efisien Teknik untuk Pencocokan Fuzzy dan Parsial di MongoDB .
-
Integrasikan dengan alat pencarian eksternal yang menyediakan fitur pencarian lebih lanjut. Ini menambah beberapa kerumitan pada penerapan Anda dan kemungkinan berlebihan hanya untuk typeahead, tetapi Anda mungkin menemukan fitur pencarian lain yang ingin Anda sertakan di tempat lain dalam aplikasi Anda (mis. "seperti ini", kedekatan kata, pencarian segi, ..).
Misalnya lihat:Cara Melakukan Fuzzy-Matching dengan Konektor Mongo dan Pencarian Elastis . Catatan:kueri fuzzy didasarkan pada jarak Levenshtein.
-
Gunakan pustaka pelengkapan otomatis seperti sumber terbuka Twitter
typeahead.js
, yang menyertakan mesin saran dan API kueri/caching. Typeahead sebenarnya melengkapi pendekatan backend lainnya, dan mesin sarannya (opsional) Anjing Darah mendukung prefetching serta caching data di penyimpanan lokal.