Nedir (PHP / MySQL) bir arama içine yazım hatası düzeltme uygulamak için en iyi yolu nedir?

3 Cevap php

Ben filmleri listeleyen bir site var. Doğal olarak film ararken insanların yazım hataları yapmak ve tabii ki bazı filmler, kesme işareti başlığı, vb sayıları heceleyerek harf kullanmak gerçeği var

Nasıl benim arama komut dosyası bu hataları görmezden alabilirim? Muhtemelen biraz daha zeki şey gerekir NEREDE mov_title LIKE '% anahtar kelime%'

Ben bir tam metin arama motorunu kullanmak, ancak tüm bu şeyler gerçekten karmaşık bakmak ve benim uygulama içine inşa yeryüzünde cehennem gibi olacağını hissediyorum öne sürüldü. Ben birini kullanmak zorunda yoksa ... nedir mevcut koduna uygulamak için en acısız olacak az invaziv bir,.

3 Cevap

Ben harici bir metin arama motoru uygulamak gerekir düşünüyorum. MySQL sadece tam metin araması da iyi değil. Sana Lucene gitmek vermek gerekir derim (tutorials). Zend Framework has an API o daha kolay öğrenmek ve kullanmak için yapım, Lucene takılır.

Ben php ne de mysql de kullandım, ama tam metin arama için bir alternatif olabilir soundex searches.

MySQL kullanmak olduğunu varsayarsak - MySQL bunu yapabilecek hiçbir dahili işlevleri vardır.

Bu bir tam metin arama kendinizi uygulamak zorunda, ya da üçüncü bir tam metin arama aracını kullanın anlamına gelir.

  • Eğer kendiniz uygularsanız, size, (ben görevi bu tür neredeyse kadar iyi değil ki, Soundex onları tavsiye ederim) metaphone veya double metaphone algoritmaları içine bakmalı Tüm kelimelerin phoenetic temsillerini saklayın. Ancak, kendi tam metin araması bina değmesini için bir görevdir. Kendinizi bir veritabanı sihirbazı düşünün yoksa buna teşebbüs etmeyin.
  • Eğer bir üçüncü taraf aracı istiyorsanız, Lucene gitmek için yoludur. Java kullanmak zorunda değilsiniz - Bu including PHP, farklı dilleri / platformları ton taşıdık.