2013-08-07 13 views
5

pg_trgm modülünden similarity() işlevini kullanarak bir PostgreSQL veritabanı için C# 'da bulanık arama oluşturdum. Şimdi bu aramayı bir MySQL veritabanına taşımak istiyorum, ancak MySQL'in benzer bir trigram işlevi yok.MySQL için pg_trgm (PostgreSQL) gibi bir Trigram işlevi var mı?

MySQL'de pg-trgm modülünü PostgreSQL'den almanın bir yolu var mı, yoksa MySQL için Trigram'ların benzer bir uygulaması var mı?

Maalesef henüz tatmin edici bir uygulama bulamadık.

Kurulum, bakım ve sözdizimi ve yapılandırma hakkında bilgi sahibi olmak için Solr gibi harici bir arama motorunu kullanmakta isteksizim.

+0

Belki bu size yardımcı olur mu? http://stackoverflow.com/questions/3320698/what-is-the-best-way-to-implement-a-substring-search-in-sql – Benvorth

cevap

2

Bu soru eski biliyorum ama Google bu ararken burada var ve ben de buldum yeni bilgi orada biraz .

Mysql 5.7.6'dan itibaren nGram'ı tam metin aramalarında kullanmak için destek oluşturulmuştur.

Mysql team article regarding ngram searches

0

PostgreSQL'e aşina değilim, ancak Innodb depolama motorunu kullanıyorsanız, "Tam Metin" aramasında arama yapmak istediğiniz diziyi yapın. sonra da arama yapmak aşağıdaki arama sözdizimini kullanın edebilirsiniz contant

SELECT subject, MATCH (subject) AGAINST ("Find This String") AS relevance_notes 
FROM yourTable 

http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html#function_match