在MariaDB 10中将下划线作为全文搜索词边界

时间:2016-12-17 11:30:11

标签: full-text-search mariadb

我们假设表格节点的varchar列描述在MariaDb 10中带有全文索引。

查询

 select description from node where match(description) against('night');

将匹配描述值,如

Night-and-day
What-a-wonderful-night
What a wonderful night

但不匹配

What_a_wonderful_night

现在我的问题:似乎space()和连字符( - )被认为是单词边界,但是下划线(_)不是。有没有办法通过配置或查询内部使下划线成为单词边界?

1 个答案:

答案 0 :(得分:0)

更改ha_innobase.cc中的宏true_word_char():

-#define true_word_char(c, ch) ((c) & (_MY_U | _MY_L | _MY_NMR) || (ch) == '_')
+#define true_word_char(c, ch) ((c) & (_MY_U | _MY_L | _MY_NMR))

并重建MariaDB。