Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

levenshtein thay thế

Nếu bạn chỉ bị ràng buộc với MySQL thì không có một giải pháp dễ dàng.

Thông thường điều này được giải quyết bằng cách sử dụng lập chỉ mục ngram chuyên biệt để lọc tìm kiếm ứng viên nhanh chóng và sau đó chỉ tính toán levensthein trên 10-50 ứng viên, nhanh hơn so với việc tính toán levensthein cho tất cả các cặp.

Các công cụ tìm kiếm văn bản đầy đủ chuyên dụng như Solr / Lucene tích hợp sẵn tính năng này.

PostgreSQL có mô-đun đóng góp pg_trgm (http://www.postgresql.org/docs/9.0/static/pgtrgm.html) hoạt động giống như một sự quyến rũ.

Bạn thậm chí có thể mô phỏng điều này trong MySQL bằng cách sử dụng lập chỉ mục toàn văn bản, nhưng bạn phải thu thập các từ từ tất cả các tài liệu của mình để chuyển đổi chúng sang ngrams, tạo chỉ mục văn bản đầy đủ trên chúng và hack tất cả chúng lại với nhau để tra cứu nhanh chóng. Điều này mang đến đủ loại rắc rối với việc dự phòng, đồng bộ hóa ... không đáng để bạn mất thời gian.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Toán tử NULL AN TOÀN KHÔNG bằng

  2. Docker - Chạy Apache trên máy chủ và vùng chứa cho các trang web khác nhau

  3. Thêm ID Tự động Tăng dần vào bảng hiện có?

  4. Mẹo để chuyển từ Cơ sở dữ liệu độc quyền sang nguồn mở

  5. Chỉ nhận các bản ghi được tạo ngày hôm nay trong laravel