MariaDB 10.3 - логический поиск возвращает разные результаты для Innodb и MyISAM - PullRequest
0 голосов
/ 02 ноября 2019

Я пытался отключить стоп-слова InnoDB, но он по-прежнему не работает с ключевыми словами the, this и т. Д., Когда они включены, также min_word имеет значение 2.

Я где-то читал на stackoverflow, что кто-то упомянул, что MyISAM игнорирует полнотекстовый индекс и возвращает результаты, в то время как InnoDB не будет игнорировать и не доставлять результаты.

Есть ли способ исправитьэто для InnoDB?

Вот пример ..

The flower is red and beautiful.

InnoDB

SELECT name FROM x MATCH (x.name) AGAINST ('+the* +flower*' IN BOOLEAN MODE)
Showing rows 0

MyISAM

SELECT name FROM x MATCH (x.name) AGAINST ('+the* +flower*' IN BOOLEAN MODE)
Showing rows 1

РЕДАКТИРОВАТЬ 1:

Вот настройки: (стоп-слова отключены и установлены в пустую таблицу)

aria_force_start_after_recovery_failures    0
ft_boolean_syntax   + -><()~*:""&|
ft_max_word_len     84
ft_min_word_len     2
ft_query_expansion_limit    20
ft_stopword_file    
innodb_ft_aux_table     
innodb_ft_cache_size    8000000
innodb_ft_enable_diag_print     OFF
innodb_ft_enable_stopword   ON
innodb_ft_max_token_size    84
innodb_ft_min_token_size    2
innodb_ft_num_word_optimize     2000
innodb_ft_result_cache_limit    2000000000
innodb_ft_server_stopword_table     local/my_stopwords
innodb_ft_sort_pll_degree   2
innodb_ft_total_cache_size  640000000
innodb_ft_user_stopword_table   local/my_stopwords

РЕДАКТИРОВАТЬ 2:

Исправлено путем изменения my.cnf на

innodb_ft_enable_stopword = 0

Предложено @ Raymond Nijland

...