mysql - mysql全文搜索中的前缀和后缀通配符

标签 mysql full-text-search

我的客户坚持通过字符串的任何部分搜索多个列。所以我正在尝试这样做:

... MATCH(smth, smth2) AGAINST('*string*' IN BOOLEAN MODE)

索引或快速搜索不是必需的,所以即使 MATCH.. AGAINST 不使用索引 - 也可以。但问题是带前缀的通配符不起作用 - 只有单词后面的通配符起作用:

*string* - will match the same as string* and *string does not match anything

有没有办法用MYSQL解决这个问题?我真的不打算安装任何索引服务或类似的东西,所以慢查询将不得不这样做。

我可以尝试以某种方式在多个列上使用 LIKE,但我想这会更慢。

最佳答案

Mysql 全文搜索不允许我们使用 * 作为匹配搜索的前缀..

检查此以供引用:

http://dev.mysql.com/doc/refman/4.1/en/fulltext-boolean.html

关于mysql - mysql全文搜索中的前缀和后缀通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13857436/

相关文章:

php - 从数据库中检索给定日期范围内的可用房间及其床位

java SSH 连接到 mysql 时出错,本地端口无法绑定(bind)

php - 单词之间没有空格的语言中的断字(例如,亚洲语言)?

elasticsearch - 全文和 knn_vector 混合搜索弹性

php - 复选框未在数据库中更新

Java - 可以连接到 netbeans 中的 mysql 服务器,但不能像 applet 一样工作

mysql - 在 MySQL 中更改表时出现错误

mysql - 如何在多个匹配项之间拆分 FULLTEXT 索引

postgresql - 如果任何列在 PostgreSQL 全文搜索中没有数据,则 to_tsvector 为空

python - 在文本文件中搜索字符串,保存包含列表中项目的行,如果文本文件中不存在该项目,则返回 NA