gpt4 book ai didi

php - MySQL 全文搜索不适用于某些单词

转载 作者:行者123 更新时间:2023-11-29 13:03:23 24 4
gpt4 key购买 nike

我已经进行了 MySQL 全文搜索,最小搜索长度为 3 个字符,搜索工作正常,除了某些单词,在有结果的情况下不会返回结果。

如果我搜索单词avg,则会返回结果。,如果我搜索单词how,则不会返回结果。

我正在尝试这种方式。

$keyword = preg_replace('/  */', ' *', $keyword);
$keyword = preg_replace('/\s+/', ' *', $keyword);
$keyword = preg_replace('/\W+/', ' *', $keyword);
$keyword = "$keyword*";

$query = "SELECT *, MATCH (title, link) AGAINST ( ? IN BOOLEAN MODE) AS rel FROM $table WHERE MATCH (title, link) AGAINST ( ? IN BOOLEAN MODE) GROUP by rel DESC, $order $sort LIMIT $rpp OFFSET $offset";

我也尝试了这些解决方案,但对于单词“how”同样没有结果

//Changing
$keyword = preg_replace('/ */', ' +', $keyword);
$keyword = preg_replace('/\s+/', ' +', $keyword);
$keyword = preg_replace('/\W+/', ' +', $keyword);

$keyword = preg_replace('/ */', '+', $keyword);
$keyword = preg_replace('/\s+/', '+', $keyword);
$keyword = preg_replace('/\W+/', '+', $keyword);

//In combination
$keyword = "+$keyword*";
$keyword = "$keyword*";
$keyword = "+$keyword";
$keyword = "$keyword";

请查看并提出为什么我的搜索对某些字词不起作用的原因。

谢谢。

更新how 一词出现在 10 行中,avg 一词出现在 16 行中。我有超过 650 行。我也在查询中使用 IN BOOLEN MODE ,因此 MySQL 50% 规则使 how 成为停用词应该不会有问题。

最佳答案

avghow 在标准配置中都太短,请参阅 documentation 。您更改了这一点,但 howstop word list 的一个元素:

Boolean full-text searches have these characteristics:

The minimum and maximum word length full-text parameters apply.

The stopword list applies.

使用ft_stopword_file系统变量覆盖停用词列表:

To override the default stopword list, set the ft_stopword_file system variable. (See Section 5.1.4, “Server System Variables”.) The variable value should be the path name of the file containing the stopword list, or the empty string to disable stopword filtering.

关于php - MySQL 全文搜索不适用于某些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23039798/

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