GBase 8a MPP Cluster 产品手册 5 数据库管理指南 文档版本953(2022-09-15) 南大通用数据技术股份有限公司 937 INT SCORE(N) 表5- 47 参数说明 参数名称 说 明 INT 返回值为INT 类型,该数值为与其SCORE 标号一致的全文 查询函数CONTAINS 查询结果权重, N SCORE 标号,整数类型, 该数值应与当前查询语句的Where 子句中某一全文查询CONTAINS 函数的SCORE 标号一致。 注意 SCORE 函数只能用于投影列、 GROUP BY 和ORDER BY 子句中, 否则报 错。 gbase> SELECT * FROM t WHERE contains(a ,' 中国',0) AND score(0) >10; ERROR 1149 (42000): score function can ONLY in SELECT, GROUP BY or ORDER BY clause 如果没有与其SCORE 标号一致的全文查询函数CONTAINS,则报出错误 信息: gbase> SELECT score(1) a1 FROM t WHERE contains(a ,'中国',0); ERROR 1149 (42000): not match the number of score func 如果多个CONTAINS 函数的SCORE 标号均与其一致,则报出错误信息: gbase> SELECT score(0) FROM t WHERE contains(b, 'abc' , 0) AND contains(b, 'bcb' , 0); ERROR 1210 (HY000): Incorrect arguments to CONTAINS FUNCTION - SCORE FLAG COLLISION 示例 示例1:查询包含“南大”词组的短信并且按照score 分值倒排序。示例中第1 行 数据中权重值跟其他两行相比要高,因为第1 行查询“南大”命中了两次,其他 两行只命中了一次。
GBase 8a MPP Cluster 产品手册 5 数据库管理指南 文档版本953(2022-09-15) 南大通用数据技术股份有限公司 938 gbase> INSERT INTO sms VALUES(1,1,'晚上去南大上英语课, 在南大主楼 115 房间'); Query OK, 1 row affected gbase> INSERT INTO sms VALUES (1,1,'南大通用数据技术有限公司地 址:天津花苑产业区海泰发展6 号海泰J 座'); Query OK, 1 row affected gbase> INSERT INTO sms VALUES (1,1,'南大开设java 编程培训班, 每周 五晚上7:00-9:00 上课'); Query OK, 1 row affected gbase> SELECT score(1) AS score, MB_Text FROM sms WHERE conta ins(MB_Text, '"南大"',1) ORDER BY score DESC; +-------+----------------------------------------------------+ | score | MB_Text | +-------+----------------------------------------------------+ | 1511 | 晚上去南大上英语课,在南大主楼115 房间 | | 1508 | 南大通用数据技术股份有限公司地址:... | | 1508 | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课| +-------+----------------------------------------------------+ 3 rows in set