MySQL和PHP搜索相似词

Gre*_*gor 4 php mysql select

我的 MySQL 表包含具有属性名称(项目名称)和关键字(与项目相关的单词)的项目。我用以下代码搜索数据库..

SELECT * FROM items WHERE (name LIKE '%$query%' OR keywords LIKE '%$query%') LIMIT $start, $per_page"
Run Code Online (Sandbox Code Playgroud)

其中一个项目是一部手机,它有一个关键字“mobile”,因此当有人搜索 mobile 时,该项目会显示为结果,这很好。但是,当有人搜索末尾带有 s 的“mobiles”时,它不会显示任何结果。如何让我的查询搜索包含搜索词的任何内容?

Lou*_*Lou 5

假设由于缺乏细节而被否决,我正在编辑解释。

Like 运算符将严格的字符模式与一些通配符进行匹配。您要求数据库做的是解释搜索词的自然语言变体,以解释复数等内容。仅通过模式匹配无法做到这一点。没有好的、可靠的方法可以将搜索词的一部分与 Like 或类似运算符进行匹配(例如,我们可以编写代码来删除搜索中的任何尾随空格,以尝试匹配更多项目)。我建议您研究以下内容,这是所有主要 RDBMS 平台(例如 MS SQL)所共有的功能:

自然语言全文搜索:

http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html

该链接是对包含示例代码的功能的引用。