我已经阅读了mysql中的全文搜索功能 . 但在这些方法中,您必须搜索完全正确拼写的完整单词 .
例如,如果您的文本包含“Bitdefender 2009”并且您搜索Bit,则什么也得不到
SELECT * FROM logs WHERE MATCH (log) AGAINST ('Bit 09' IN BOOLEAN MODE);
那么有什么解决方案吗?
(是否有一种技术可以让您搜索拼写错误的关键字?例如,您搜索Bitdefedner)
你也可以转向Lucene或https://stackoverflow.com/questions/553055/best-full-text-search-for-mysql中提到的其他专业搜索引擎
您可能需要 LIKE , REGEXP , AGAINST 或 SOUNDEX 函数的帮助 .
LIKE
REGEXP
AGAINST
SOUNDEX
看看以下内容:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like
http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex
您可以使用*通配符AGAINST('Bit * 09'IN BOOLEAN MODE)
对于拼写错误的关键字,您需要单独的拼写检查阶段 .
3 回答
你也可以转向Lucene或https://stackoverflow.com/questions/553055/best-full-text-search-for-mysql中提到的其他专业搜索引擎
您可能需要
LIKE
,REGEXP
,AGAINST
或SOUNDEX
函数的帮助 .看看以下内容:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like
http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex
您可以使用*通配符AGAINST('Bit * 09'IN BOOLEAN MODE)
对于拼写错误的关键字,您需要单独的拼写检查阶段 .