我需要编写一个查询来搜索数据库中的字符串(关键字)。
当用户输入一些文字时,如衣服'然后查询应该搜索' Clothes'整个数据库ProductName, ProductCode, SubCategoryName, etc
中的关键字以及近/相似文本。所以它应该显示所有'衣服'相关产品,类似于谷歌搜索引擎。
还包括拼写错误,例如' Clotts',' Clooths'或者' Clothos'然后它应该显示'衣服'相关项目。
如果需要澄清,请发表评论。
我正在使用VS2010 C#,MySql 5.5数据库
答案 0 :(得分:3)
当用户输入“衣服”等文字时,查询应在整个数据库中搜索“衣服”关键字
SELECT f1,f2,f3 FROM table1
WHERE match (f1,f2,f3) AGAINST ('$search_term' IN NATURAL LANGUAGE MODE)
请注意,在MySQL中,全文搜索需要MyISAM表 它也不能解决拼写错误。
还包括拼写错误,如“Clotts”,“Clooths”或“Clothos”,然后它应显示“衣服”相关项目。
您正在寻找包含Levenshtein distance
的算法有些人编写了UDF,您可以使用MySQL安装(在Windows上作为dll),它可以为您提供以下功能:
见:http://samjlevy.com/2011/03/mysql-levenshtein-and-damerau-levenshtein-udfs/
该链接甚至包括安装UDF的方法。