我想根据行的标题列选择相似的行。标题栏大多有5到6个关键词。你推荐哪种算法?也许是Soundex?
附注:标题栏有unicode字符,如符号、?、Ş……
发布于 2010-07-09 08:35:01
我的问题的答案mysql全文搜索。此外,它还支持unicode。
SELECT *, match(project_title) against('sample project 55') as similarity
FROM projects
WHERE status IN(1, 2, 3, 4, 5, 6) AND id != ? AND match('sample project 55') against(?)
ORDER BY similarity DESC发布于 2010-07-03 09:20:20
如果您的意思是拼写和发音相似,我会考虑使用SOUNDEX函数。
发布于 2010-07-03 09:21:59
老实说,我会为keywords(id, external_id, keyword)创建一个表,然后对表本身进行连接,按匹配项的数量排序,然后抓取返回的行。
如果要匹配单行,则可以仅选择该行,以获得更高的连接效率。
这可以与SOUNDEX结合起来,将接近的东西匹配在一起
https://stackoverflow.com/questions/3169933
复制相似问题