sql - MariaDB MATCH AGAINST 与单引号搜索词?
问题描述
我正在尝试找到一个使用 MATCH AGAINST 的有效查询,同时搜索词包含单引号。
数据库表中的示例数据:
I'm a freak
示例搜索词:
I'm
我试过的搜索查询:
SELECT * FROM table WHERE MATCH (name) AGAINST ('"I\'m"' IN NATURAL LANGUAGE MODE);
SELECT * FROM table WHERE MATCH (name) AGAINST ('"I\'m"' IN BOOLEAN MODE);
SELECT * FROM table WHERE MATCH (name) AGAINST ('I\'m*' IN BOOLEAN MODE);
SELECT * FROM table WHERE MATCH (name) AGAINST ('(I\'m)*' IN BOOLEAN MODE);
...还有很多。没有任何工作。
我正在使用 MariaDB 10.1.33。
有任何想法吗?
解决方案
- 我很确定收缩不被视为单词。
- 相反,撇号被视为单词分隔符,为您提供“I”和“m”。
- 但是你可能没有
innodb_ft_min_token_size=1
,所以这两个“词”被忽略了。
FT有局限性;你遇到过其中之一。
推荐阅读
- r - 在 R 中使用 p-1 < df < p 从 Wishart 分布中采样
- c# - C#:如何在单击按钮之前停止我的程序
- python - 查找列表中的第二大元素(对于重复元素)
- android - java.lang.StackOverflowError:设置从相机捕获背景图像时堆栈大小为 8MB
- typescript - 如何在 Typescript 中键入带有扩展参数的组合函数?
- mocking - 关于模拟 PDO 类的问题
- c# - 制作公共颜色并将其绑定到 Xaml
- javascript - 如何以可用于对象元素的最低序列更新数组中的对象元素?
- java - 将arraylist从字符串转换为arraylist
- git - 如何fork一个flutter包并进行更改