最近学习Gbase 8a MPP的全文索引功能,看到其中使用了contains函数,有人能详细介绍一下这个函数的具体功能吗
1条回答 默认 最新
- twinking star 2021-12-06 17:58关注
使用 SELECT 语句来查询文本内容,其中使用了 CONTAINS()函数作为查询条件,对设置了全文索引的列内容进行快速匹配。
查询语法:
SELECT query_column FROM table_name WHERE CONTAINS (column_name, Query Content[, score_flag])
参数名称说明
query_column 需要显示的查询结果列。
table_name表名。
column_name 查询列,也即创建了全文索引的列名,不支持多列查询。
Query Content 需要查找的内容,为字符型,需要使用'...'引用查询内容。内容支持文本查询、逻辑运算查询表达式、
NEAR 函数等。
score_flag SCORE 标号,可选项, 如不填写,则表示不输出评估值, 应与 SCORE 函数一起使用。
说明
当一条查询语句中含有多个 contains 函数条件时,score_flag 参数值应互不相同,否则会报语法错误信息:Incorrect arguments to CONTAINS FUNCTION - SCORE FLAG COLLISION。
示例
示例 1:查询有多少条短信包含“南大通用”这 4 个字符。
gbase> SELECT COUNT() FROM sms WHERE contains(MB_Text, '南大通用');
+----------+
| COUNT() |
+----------+
| 1 |
+----------+
1 row in set
gbase> SELECT COUNT() FROM sms WHERE contains(MB_Text, '南大通用', 0);
+----------+
| COUNT() |
+----------+
| 1 |
+----------+
1 row in set
示例 2:查询包含“南开”的短信并且按照 score 分值倒排序。
gbase> SELECT score(1) AS score,MB_Text FROM sms WHERE
contains(MB_Text, '南开',1) ORDER BY score DESC;
+-------+------------------------------------------------------+
| score | MB_Text |
+-------+------------------------------------------------------+
| 1537 | 周末去天津博物馆参观,在南开区南门外大街公交车站集合|
+-------+------------------------------------------------------+
1 row in set
示例 3:contains 函数用于 where 条件中有效,不支持在 having 条件中搜索,即在
having 条件中无效。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 请问一下这个运行结果是怎么来的
- ¥15 这个复选框什么作用?
- ¥15 单通道放大电路的工作原理
- ¥30 YOLO检测微调结果p为1
- ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
- ¥15 DS18B20内部ADC模数转换器
- ¥15 做个有关计算的小程序
- ¥15 MPI读取tif文件无法正常给各进程分配路径
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下