Php ile bir mysqldb ara

2 Cevap php

How to implement a great search within a mysqldb - within a table if i search with '...LIke %bla%....' not all entrys would be found - if bla within a word for example. a search with soundex would be great to - but if i read the manual i must create an soundex-index to search for soundex-values?

Yani "en iyi uygulama" Basit bir sütun "başlık" veya başka Someting içinde iyi bir db-arama vor bir anahtar kelime yazmak nedir soru.

bye

2 Cevap

FULLTEXT indeksi (MyISAM kullanarak anlamına gelir) ya da Lucene veya Sphinx gibi özel indeksleme motorlarını kullanarak - metin arama için bir LIKE yan tümcesi kullanarak yanı sıra iki seçeneğiniz var.

Şahsen ben Sphinx kullanarak tavsiye ederim, MySQL ve PHP ile mükemmel entegrasyon var ve metin arama için çok hızlı (ve diğer sorgular gibi).

Yukarı yükleme ve Sfenks kullanarak değilseniz, o zaman "MAÇ" gibi tam metin arama özellikleri inşa MySQL en bazılarını kullanarak deneyebilirsiniz

Bu tam metin aramasını ve bir alaka puanı ile bile safları sonuçlar yapalım. Sen gibi sorgular yazabilirsiniz:

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

Hatta yakından ilişkili diğer şartlarda almak için sorgu genişleme kullanabilirsiniz. "Veritabanı" için kullanıcı arar ve en üst alakalı sonuçlar "mysql" içeren eğer "mysql" terimi yakından "veritabanı" ile ilişkili olduğunu tespit etmiştir çünkü Örneğin, daha sonra mysql de "mysql" için arayacaktır için aranan kullanıcıyı terim.

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