mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[ticket/16096] Use InnoDB fulltext limits for InnoDB tables
The max and min search length for the MySQL database vary based on the engine for the underlying table. For MyISAM tables, the variables are ft_max_word_len and ft_min_word_len, but for InnoDB tables the variables are innodb_ft_max_token_size and innodb_ft_min_token_size. Take the posts table type into account when setting the max and min search length. PHPBB3-16096
This commit is contained in:
parent
9e9bdb69b5
commit
e33e572741
1 changed files with 11 additions and 3 deletions
|
@ -188,7 +188,7 @@ class fulltext_mysql extends \phpbb\search\base
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SHOW VARIABLES
|
$sql = 'SHOW VARIABLES
|
||||||
LIKE \'ft\_%\'';
|
LIKE \'%ft\_%\'';
|
||||||
$result = $this->db->sql_query($sql);
|
$result = $this->db->sql_query($sql);
|
||||||
|
|
||||||
$mysql_info = array();
|
$mysql_info = array();
|
||||||
|
@ -198,8 +198,16 @@ class fulltext_mysql extends \phpbb\search\base
|
||||||
}
|
}
|
||||||
$this->db->sql_freeresult($result);
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
$this->config->set('fulltext_mysql_max_word_len', $mysql_info['ft_max_word_len']);
|
if ($engine === 'MyISAM')
|
||||||
$this->config->set('fulltext_mysql_min_word_len', $mysql_info['ft_min_word_len']);
|
{
|
||||||
|
$this->config->set('fulltext_mysql_max_word_len', $mysql_info['ft_max_word_len']);
|
||||||
|
$this->config->set('fulltext_mysql_min_word_len', $mysql_info['ft_min_word_len']);
|
||||||
|
}
|
||||||
|
else if ($engine === 'InnoDB')
|
||||||
|
{
|
||||||
|
$this->config->set('fulltext_mysql_max_word_len', $mysql_info['innodb_ft_max_token_size']);
|
||||||
|
$this->config->set('fulltext_mysql_min_word_len', $mysql_info['innodb_ft_min_token_size']);
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue