使用全文搜索来搜索mysql中不完整的单词

2024-01-12

我正在制作一个图书馆管理系统。 我在从 mysql 数据库搜索书籍时遇到问题。

为了在 mysql 中搜索数据,我们使用全文搜索。

但只有给出完整的单词时它才有效。如果用户输入不完整的单词而不是实际单词,是否有任何功能可以搜索。

例如:如果书名是微积分, 如果用户输入 calc ,那么书籍也应该出现


您可以尝试使用全文搜索布尔模式 http://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html,这允许一些额外的运算符。您将对截断运算符感兴趣(*):

星号用作截断(或通配符)运算符。不像 对于其他运算符,它附加到受影响的单词后。字 如果它们以 * 运算符前面的单词开头,则匹配。

如果用截断运算符指定一个单词,则它不是 从布尔查询中剥离,即使它太短或者是一个停用词。 判断一个词是否太短 InnoDB 表的 innodb_ft_min_token_size 设置,或 ft_min_word_len 对于 MyISAM 表。这些选项不适用于全文 使用 ngram 解析器的索引。

通配符单词被视为必须出现在的前缀 一个或多个单词的开头。如果最小字长为 4,则 搜索“+word +the*”可能会比搜索返回更少的行 '+word +the',因为第二个查询忽略了太短的搜索 术语.

请注意,您不能start一个表达式*运算符,因此结果不能包含书名contains'calc',仅限哪个标题starts与“计算”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用全文搜索来搜索mysql中不完整的单词 的相关文章

随机推荐