gpt4 book ai didi

带词边界的 MySQL 全文搜索

转载 作者:可可西里 更新时间:2023-11-01 06:33:34 24 4
gpt4 key购买 nike

我读过一些 articlesissues ,但找不到令人满意的解决方案。我想在用户填写表单时从数据库中选择相关记录;与您提出问题时该功能在本网站上的运作方式相同。

考虑一个数据库表,在 subject 列中包含以下三个记录

+---+---------------------------------------------------+
| 1 | Pagina aanmaken en beter doorzoekbaar maken |
+---+---------------------------------------------------+
| 2 | Sorteerfunctie uitbreiden in zoek-en-boek functie |
+---+---------------------------------------------------+
| 3 | Zoek de verschillen tussen de pagina's |
+---+---------------------------------------------------+

我的搜索查询以单词 zoek 开始,所以我想从数据库中查询与术语 zoek 最相关的结果。我提出了以下查询:

SELECT 
id,
subject,
MATCH(
subject
)
AGAINST(
'zoek*'
IN BOOLEAN MODE
)
AS
score
FROM
Issues
WHERE
MATCH(
subject
)
AGAINST(
'zoek*'
IN BOOLEAN MODE
)

当我运行此查询时,我希望所有记录都显示并且(可能,我不知道 MySQL 中的特异性如何工作)ID 3 显示在顶部(因为单词完全匹配)。

相反,查询的结果只有行 23 具有完全相同的分数 (0.031008131802082062)。

我需要在查询中更改什么才能匹配适当的记录?还考虑到用户可以输入关键字或句子。

最佳答案

MySQL 全文搜索不支持后缀。

要获得第一行,您必须与当前不允许的“*zoek*”进行匹配。

替代方法是使用

SELECT id, subject
FROM Issues
WHERE subject LIKE '%zoek%'

关于带词边界的 MySQL 全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34810023/

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