Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

bagaimana cara menggunakan Fuzzy look up untuk menemukan kalimat dalam SQL?

Ini bukan pertanyaan sederhana. Taruhan terbaik Anda adalah menggunakan beberapa jenis pencarian teks lengkap . Pencarian teks lengkap dapat dikonfigurasi untuk memiliki stopwords (kata-kata yang dihilangkan dari pencarian - seperti kata the ) dan juga dapat memiliki batas panjang kata minimum (kata-kata dengan panjang karakter kurang dari tertentu juga dihilangkan dari pencarian.

Namun, jika Anda hanya menggunakan

SELECT * FROM testtable
WHERE MATCH (sentence)
AGAINST ('ISBN number on site');

Kemudian MySQL akan mengembalikan tidak hanya record dengan nilai yang Anda cari, tetapi record yang memiliki beberapa kata saja, dan dalam urutan yang berbeda. Yang Anda tunjukkan mungkin akan menjadi salah satu peringkat tertinggi, tetapi tidak ada jaminan bahwa itu akan menjadi peringkat tertinggi.

Anda mungkin ingin menggunakan Penelusuran teks lengkap Boolean dan tambahkan + ke setiap kata pencarian untuk memaksa MySQL mengembalikan catatan tersebut hanya yang memiliki semua kata pencarian yang ada:

SELECT * FROM testtable
WHERE MATCH (sentence)
AGAINST ('+ISBN +number +on +site' IN BOOLEAN MODE);

Tapi, on harus berupa stopword (ada di daftar stipword default) atau harus lebih pendek dari panjang kata minimum, jadi harus dihilangkan dari ekspresi pencarian (Anda tidak akan mendapatkan kembali hasil apa pun):

SELECT * FROM testtable
WHERE MATCH (sentence)
AGAINST ('+ISBN +number +site' IN BOOLEAN MODE);

Saya tahu bahwa ini memerlukan perubahan ekspresi pencarian, namun ini akan memberi Anda hasil terbaik menggunakan fungsionalitas bawaan MySQL.

Alternatifnya adalah menggunakan mesin pencari teks lengkap lainnya, seperti sphinx untuk melakukan pencarian untuk Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghubungkan ke MySQL melalui SSL menggunakan PHP

  2. Bagaimana Anda menggunakan mvc-mini-profiler dengan Entity Framework 4.1

  3. MySQL - Kunci asing yang unik

  4. Mengapa MYSQL LIMIT offset yang lebih tinggi memperlambat kueri?

  5. SQL Group BY menggunakan string di kolom baru