问题:在 MySQL 全文搜索中处理拼写错误的最佳方法

我在 mysql 数据库中有大约 2000 行。

每行最多 300 个字符,包含一两个句子。

我使用 mysql 内置的全文搜索来搜索这些行。

如果可能,我想添加一个功能,以便更正拼写错误和意外拼写错误。

例如,如果有人在搜索框中键入“右肩”,则在执行搜索时这将等同于“右肩”。

您对添加此类功能的最简单方法有何建议?是否值得添加某种外部搜索引擎,例如 lucene? (对于这么小的数据集,这似乎有点过头了。)或者有没有更简单的方法?

解答

我认为你应该使用SOUNDS LIKESOUNDEX()

由于您的数据集非常小,一种解决方案可能是创建一个新表来存储每个文本字段中包含的单个单词或 soundex 值,并在该表上使用 SOUNDS LIKE。

例如:

SELECT * FROM table where id IN 
(
    SELECT refid FROM tableofwords 
    WHERE column SOUNDS LIKE 'right' OR column SOUNDS LIKE 'shlder'
)

参见:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

我相信不可能通配符搜索字符串:(

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐