10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(邮政编码)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

MySQL 8.0参考手册/.../ 为全文索引添加用户定义的排序规则

12.10.7为全文索引添加自定义排序规则

本节介绍如何使用内置的全文解析器为全文搜索添加用户定义的排序规则。样本整理如下latin1_swedish_ci但对待“- - -”字符作为字母,而不是作为标点字符,以便它可以作为单词字符进行索引。中给出了添加排序规则的一般信息第10.14节,“向字符集添加排序规则”;假设您已经阅读了该文档,并熟悉相关的文件。

若要为全文索引添加排序规则,请使用以下过程。这里的说明为简单字符集添加排序规则,如中所述第10.14节,“向字符集添加排序规则”,可以使用描述字符集属性的配置文件创建。对于Unicode等复杂字符集,使用描述字符集属性的C源文件创建排序规则。

  1. 向。添加排序规则Index.xml文件。中给出了用户定义排序规则允许的id范围第10.14.2节,“选择排序规则ID”.该ID必须是未使用的,所以如果系统上已经使用了该ID,请选择一个不同于1025的值。

    <字符集名称= " latin1”中的一个>… 
  2. 中排序规则的排序顺序latin1.xml文件。在这种情况下,可以从中复制订单latin1_swedish_ci

    <排序规则名= " latin1_fulltext_ci " > <地图> 00 01 02年03 04 05 06 07年08年09年0 0 0 0 b c d e 0 f 10 11 12 13 14 15 16 17 18 19 1 1 1 b c 1 d e 1 f 20 21日22日23日24日25日26日27 28 29日2 2 b 2 c 2 d 2 e 2 f 30 31 32 33 34 35 36 37 38 39 3 3 3 b c 3 d 3 e 3 f 40 41 42 43 44 45 46 47 48 49 4 4 b 4 c d e 4 f 50 51 52 53 54 55 56 57 58 59 5 5 5 b c 5 d 5 e 5 f 60 41 42 43 44 45 46 47 48 49 4 4 b 4 c d e 4 f 50 51 52 53 54 55 56 57 58 59 5一7 b 7 c 7 d 7 e 7 f 80 81 82 83 84 85 86 87 88 89 8 8 8 b c 8 d 8 e 8 f 90 91 92 93 94 95 96 9798 99 9 9 b 9 c 9 d 9 e 9 f A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC广告AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9英航BB BC BD BF 41 41 41 41 5 c 5 b 5 c 43 45岁45岁49 49 49 49 44 4 e 4 4 4 f f 5 d D7 D8 55 55 55 59 59 DE DF 41 41 41 41 5 c 5 b 5 c 43 45岁45岁49 49 49 49 44 4 e 4 4 4 f f 5 d F7 D8 55 55 55 59 59 DE FF < /地图> < /排序>
  3. 修改ctype数组中latin1.xml.更改对应于0x2D的值(这是“- - -”字符)从10(标点符号)到01(大写字母)。在下面的数组中,这是向下第4行,从末尾算起第三个值的元素。

    < ctype > <地图> 00 20 20 20 20 20 20 20 20 20 28日28日28日28日28日20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 10 10 10 10 10 10 10 10 10 10 10 100110 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 10 82 82 82 82 82 82 02年02年02年02年02年02年02年02 02年02年02年02 02年02年02年02 02年02年02 02年10 10 10 10 20 10 00 02年10 10 10 10 10 10 01 01 00 1 00 00 10 10 10 10 10 10 10 10 10 02年02 00 02年01 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01010110 01 01 01 01 01 01 01 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 02  
  4. 重新启动服务器。

  5. 要使用新的排序规则,请将其包含在将要使用它的列的定义中:

    DROP TABLE IF EXISTS t1;创建表1 (a TEXT CHARACTER SET latin1 COLLATE latin1_fulltext_ci, FULLTEXT INDEX(a)) ENGINE=InnoDB;查询OK, 0行受影响(0.47秒)
  6. 测试排序规则,以验证连字符是否被视为单词字符:

    mysql >插入t1值  ('----'),('....'),(' abcd”);SELECT * FROM t1 WHERE MATCH a AGAINST ('----' IN BOOLEAN MODE);+------+ | 一个  | +------+ | ---- | +------+ 1行集(0.00秒)