我们假设表格节点的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()和连字符( - )被认为是单词边界,但是下划线(_)不是。有没有办法通过配置或查询内部使下划线成为单词边界?
答案 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。