查询输入的文本(关键字)

时间:2011-12-28 20:05:45

标签: c# mysql

我需要编写一个查询来搜索数据库中的字符串(关键字)。

当用户输入一些文字时,如衣服'然后查询应该搜索' Clothes'整个数据库ProductName, ProductCode, SubCategoryName, etc中的关键字以及近/相似文本。所以它应该显示所有'衣服'相关产品,类似于谷歌搜索引擎。

还包括拼写错误,例如' Clotts',' Clooths'或者' Clothos'然后它应该显示'衣服'相关项目。

如果需要澄清,请发表评论。

我正在使用VS2010 C#,MySql 5.5数据库

1 个答案:

答案 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的方法。