gpt4 book ai didi

mysql - 在 MySQL 中为全文搜索添加一个 *(星号)

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:11 25 4
gpt4 key购买 nike

我知道星号是可以附加到全文搜索词末尾的通配符,但如果我搜索的关键字是后缀怎么办?例如,我希望能够搜索“ames”并返回包含名称“james”的结果。这是我当前的查询,它不起作用,因为您不能在全文搜索前加上星号。

SELECT * FROM table WHERE MATCH(name, about, address) AGAINST ("*$key*" IN BOOLEAN MODE)

我会简单地切换到使用 LIKE,但对于我的数据库大小来说它太慢了。

最佳答案

您可以做的是在您的数据库中创建另一个带有全文搜索索引的列,这个新列应该包含您要搜索的列的反向字符串,您将反向搜索查询并将其用于在反向列上搜索,查询如下所示:

SELECT * FROM table WHERE MATCH(column1) AGAINST ("$key*" IN BOOLEAN MODE) OR MATCH(reversedColumn1) AGAINST ("$reveresedkey*" IN BOOLEAN MODE)
  • 第一个条件MATCH(column1) AGAINST( boolean 模式中的“$key*”)例子:reversedColumn1==>Jmaes $reveresedkey*==>ames*将搜索以 ames 开头的单词 ==> 不匹配

  • 秒条件MATCH(reversedColumn1) AGAINST( boolean 模式中的“$reveresedkey*”)例子:reversedColumn1==>semaJ $reveresedkey*==>sema*将搜索以 ames 结尾的词 ==> 我们有匹配项

如果您的文本很短,这可能不是一个坏主意:

关于mysql - 在 MySQL 中为全文搜索添加一个 *(星号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16720443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com