繁体   English   中英

MySQL全文索引搜索问题

[英]Mysql FullText index searching issue

我正在使用MySql FullText索引从数据库中搜索数据。

这是query

$search_input_text = 'the_string_to_be_search';
$searchArray = explode(" ", $search_input_text);
$query="SELECT * FROM car_details
        WHERE  MATCH (car_trim) AGAINST ('";
foreach ($searchArray as $word) {
    $query .= "+".$word."* ";
}
$query .= "' IN BOOLEAN MODE) LIMIT $start, $limit";

查询执行得很好,但是有一个错误,如果您查看列名 ,则会发现MATCH()函数内部的car_trim 该列在数据库中只有3种不同类型的值,分别是“ T5”,“ T6”和“ T5 Premier”。

当我在搜索栏中输入“ Premier ”并按Enter时,它将获取结果中包含“ Premier ”一词的结果。 但是,当我键入T5T6时 ,它将返回一个空记录。 请确保有很多带有car_trim ='T5',car_trim ='T6'或car_trim ='T5 Premier'的记录

我不明白字符串T5T6可能是什么问题。

使用全文搜索时,MySQL有两个关键参数(以及其他一些重要参数)。 关键参数是最小字长和停用词列表。 简而言之,MySQL会忽略少于3个或4个字符(取决于存储引擎)或停用词列表中的词。

您的示例(“ T5”和“ T6”)太短-根据参数默认值。

其他一些配置参数可能是您感兴趣的,例如最大字长和对字有效的字符。

您可以更改用于全文索引的参数,然后重新构建索引。

是开始理解这一点的好地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM