是否有像 MySQL 的 pg_trgm (PostgreSQL) 这样的 Trigram 功能?
Posted
技术标签:
【中文标题】是否有像 MySQL 的 pg_trgm (PostgreSQL) 这样的 Trigram 功能?【英文标题】:Is there a Trigram functionality like pg_trgm (PostgreSQL) for MySQL? 【发布时间】:2013-08-07 15:25:05 【问题描述】:我使用 pg_trgm
模块中的 similarity()
函数在 C# 中为 PostgreSQL 数据库创建了模糊搜索。现在我想将此搜索移植到 mysql 数据库,但 MySQL 没有类似的 trigram 功能。
有没有办法在 MySQL 中从 PostgreSQL 导入 pg-trgm 模块,或者是否有类似的 Trigrams for MySQL 实现?
很遗憾,我还没有找到任何令人满意的实现。
由于安装、维护和熟悉语法和配置的工作量,我不愿意使用像 Solr 这样的外部搜索引擎。
【问题讨论】:
也许这会对您有所帮助? ***.com/questions/3320698/… 【参考方案1】:我知道这个问题很老,但我到这里谷歌搜索这个问题,我还发现了一些新信息。
从 Mysql 5.7.6 开始,内置支持在全文搜索中使用 nGram。
Mysql team article regarding ngram searches
【讨论】:
【参考方案2】:我不熟悉 PostgreSQL,但如果您使用 Innodb 存储引擎,请在您要搜索的列中进行“全文”搜索。那么您可以使用以下搜索语法来搜索您的内容
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
【讨论】:
以上是关于是否有像 MySQL 的 pg_trgm (PostgreSQL) 这样的 Trigram 功能?的主要内容,如果未能解决你的问题,请参考以下文章
PostgreSQL GIN 索引比 pg_trgm 的 GIST 慢?
是否有像 Queue 这样实现 IAsyncEnumerable 的 C# 类?