MySQL全文搜索布尔模式部分匹配

MySQL全文搜索布尔模式部分匹配,mysql,full-text-search,boolean,Mysql,Full Text Search,Boolean,我发现MySQL全文搜索的布尔模式很有用,但有几件事我似乎不知道如何实现 例如,假设我有一个全文专栏,其中包含“Steve的Javascript教程-第一部分” 我想为以下每个搜索匹配这些内容:“教程”、“javascript教程”、“java”、“java脚本”、“脚本” 想象一下,这些搜索中的每一个都被简单地分配给一个变量,无论使用何种语言(我总是使用PHP) 我如何修改它以确保史蒂夫的文章在每一次搜索中都被返回 将(文章标题)与(“+$variable+”*”在布尔模式下匹配)这是不可能的

我发现MySQL全文搜索的布尔模式很有用,但有几件事我似乎不知道如何实现

例如,假设我有一个全文专栏,其中包含“Steve的Javascript教程-第一部分”

我想为以下每个搜索匹配这些内容:“教程”、“javascript教程”、“java”、“java脚本”、“脚本”

想象一下,这些搜索中的每一个都被简单地分配给一个变量,无论使用何种语言(我总是使用PHP)

我如何修改它以确保史蒂夫的文章在每一次搜索中都被返回

将(文章标题)与(“+$variable+”*”在布尔模式下匹配)

这是不可能的;)

搜索“教程”时,将找不到该条目,因为数据库中的条目是单数,而搜索词是复数。在将值插入数据库(以及在搜索时)之前,应该进行某种形式的“词干分析”


完成此操作后,您的表达式将起作用。对于包含更多单词(空格)的搜索术语,您应该在每个单词中添加asterix。

想象一个场景,用户将文本输入到搜索表单中。在每个单词之间使用星号表示“java脚本”。然而,想象他们正在寻找“伦敦-巴黎”,这将需要返回“我从伦敦到巴黎的旅行”以及“我从巴黎到伦敦的旅行”。所以使用伦敦和巴黎是行不通的。相反,我们需要的是+伦敦+巴黎。但是当然,对于“+java+script”示例来说,这是行不通的。考虑到这将用于用户输入,没有办法兼顾这两个示例。当用户提交拼写错误的单词(Java和脚本之间的空格)时,您无法使用mysql布尔模式进行更正。您必须实现拼写检查或使用模糊搜索,但MySQL无法实现模糊搜索