Tôi đang tìm cách triển khai tìm kiếm mờ cho một ứng dụng PHP/MySQL nhỏ. Cụ thể, tôi có một cơ sở dữ liệu với khoảng 2400 hồ sơ (hồ sơ được thêm vào với tốc độ khoảng 600 mỗi năm, do đó, nó là một cơ sở dữ liệu nhỏ). Ba lĩnh vực quan tâm là địa chỉ đường phố, họ và ngày tháng. Tôi muốn có thể tìm kiếm theo một trong các trường đó và về cơ bản có khả năng chịu lỗi chính tả/lỗi ký tự. ví dụ: địa chỉ của "123 Main Street" cũng phải khớp với "123 Main St", "123 Main St.", "123 Mian St", "123 Man St", "132 Main St", v.v. và tương tự như vậy đối với tên và ngày tháng.PHP/MySQL tìm kiếm mờ quy mô nhỏ
Những vấn đề chính tôi có câu trả lời cho câu hỏi tương tự khác:
- Đó là không thể xác định từ đồng nghĩa cho mỗi chính tả không chính xác càng tốt, quên làm như vậy cho những ngày và tên.
- Lucene, v.v ... có vẻ rất nặng đối với tập dữ liệu tìm kiếm giới hạn như vậy (gọi tối đa 5.000 bản ghi, 3 trường cho mỗi bản ghi).
- Chỉ cần làm điều gì đó với ký tự đại diện dường như không hợp lý với tất cả các lỗi chính tả có thể xảy ra.
Mọi đề xuất? Tôi biết nó sẽ không thể thực hiện được với MySQL, nhưng vì tập dữ liệu quá giới hạn, tôi muốn giữ nó tương đối đơn giản ... có lẽ là một lớp PHP có được tất cả của các bản ghi từ DB, sử dụng một số loại thuật toán so sánh, và trả về các ID của các bản ghi tương tự?
Cảm ơn, Jason