2013-08-07 13 views
5

Ho creato una ricerca fuzzy in C# per un database PostgreSQL utilizzando la funzione similarity() dal modulo pg_trgm. Ora voglio portare questa ricerca su un database MySQL, ma MySQL non ha funzionalità trigram simili.Esiste una funzionalità di Trigram come pg_trgm (PostgreSQL) per MySQL?

C'è un modo per importare il modulo pg-trgm da PostgreSQL in MySQL o esiste un'implementazione simile di Trigrams per MySQL?

Purtroppo non ho ancora trovato nessuna implementazione soddisfacente.

Sono riluttante a utilizzare un motore di ricerca esterno come Solr a causa dello sforzo di installazione, manutenzione e conoscenza della sintassi e della configurazione.

+0

Forse questo ti sarà d'aiuto? http://stackoverflow.com/questions/3320698/what-is-the-best-way-to-implement-a-substring-search-in-sql – Benvorth

risposta

2

So che questa domanda è vecchio, ma sono arrivato qui Google ricerca di questo e c'è un po 'di nuove informazioni Ho anche trovato .

A partire da Mysql 5.7.6, è incorporato il supporto per l'utilizzo di nGram nelle ricerche di testo completo.

Mysql team article regarding ngram searches

0

Non ho familiarità con PostgreSQL ma se si utilizza il motore di archiviazione Innodb, quindi creare la colonna in cui si sta cercando di cercare "testo completo". quindi è possibile utilizzare la seguente sintassi di ricerca per cercare il tuo 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

Problemi correlati