php ile mysqldb ara

oy
2

Bir mysqldb içinde büyük bir arama uygulamak nasıl - Tablo içindeki i ile arama yaparsanız '% ... bla% LIke ....' tüm entrys bulunacağını değil - örneğin bir kelimenin içinde bla eğer. Soundex içeren bir arama için çok iyi olurdu - ama kılavuzunu okursanız i soundex-değerleri aramak için bir soundex-endeksini oluşturmalısınız?

Yani en iyi uygulama basit bir sütun başlığı veya başka Someting içinde iyi bir db-arama VOR bir anahtar kelime yazmak için neyin soru.

Hoşçakal

Oluştur 09/12/2008 saat 16:59
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
2

- metin arama için bir GİBİ maddesini kullanarak yanında iki seçenek vardır fulltext indeksi (MyISAM kullanarak anlamına gelir) ya da örneğin spesifik indeksleme motorlarını kullanarak Lucene veya Sfenks .

Şahsen Sphinx'i kullanarak tavsiye ederim, bu MySQL ve PHP hem mükemmel entegrasyonu vardır ve metin arama (ve diğer sorguları yanı) için çok hızlı.

Cevap 09/12/2008 saat 17:04
kaynak kullanıcı

oy
2

Eğer yukarı yükleme ve Sfenks kullanarak değilseniz, o zaman MySQL yönettiği "MATCH" gibi tam metin arama özellikleri yerleşik bazılarını kullanarak deneyebilirsiniz

Bu tam metin arama yapmak ve hatta bir alaka skoru sonuçları rütbeleri sağlar. Sen gibi sorguları yazabilirsiniz:

SELECT id, col1, col2, MATCH(col1, col2) AGAINST('some text' IN NATURAL LANGUAGE MODE) AS relevance FROM table1;

Hatta diğer yakından ilgili şartlarla almaya sorgu genişletmeyi kullanabilirsiniz. "Veritabanı" ve üst en alakalı sonuçları için kullanıcı "mysql" içeriyorsa o "mysql" terimi yakından "veritabanına" ile ilişkili olduğunu tespit etti çünkü Örneğin, sonra MySQL de "mysql" arayacaktır terimi, kullanıcının aradık.

http://dev.mysql.com/doc/refman/5.1/en/fulltext-query-expansion.html

Cevap 09/11/2009 saat 02:09
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more