最近学习Gbase 8a MPP的全文索引功能,看到其中使用了near函数,有人能详细介绍一下这个函数的具体功能吗
1条回答 默认 最新
- twinking star 2021-12-06 17:48关注
HEAR函数格式为:
NEAR ((term1, term2), num[,Order])
参数名称说明:
term为搜索词,无论是否有引号标识,都按照短语搜索,如 near((北京,天津),10)等价于 near(("北京","天津"),10),term 也可以是一个 Near 表达式,两个 term 用逗号分割。英文为词,中文默认为单字。
NUM表示词距数,非 0 整数,词距(包括匹配词),实际词距小于 num 值即为符号要求
Order表示词序。 为 0 代表无词序,为 1 代表有词序。Order 为可选项,默认值为 0,表示无词序。
例如 near((great, place), 3, 1), 查找 great 和 place 两词词距不超过 3,按词序查询。- 文本匹配条件描述
按照参数 order 输入值:
0:无顺序包括所有查询词语;
非 0 整数:有顺序包括所有查询词语 。
匹配词词距不超出预期值(包括匹配词);
支持递归匹配,每层递归结果均需要满足(1)(2)条件,递归结果作为一个整体传入下一次递归计算,其长度为匹配长度。 - 搜索实例说明
输入查询语句 “near((cat, dog), 5, 1)":
文本“cat dog”--- 匹配,词序正确;
文本“dog cat”--- 不匹配,dog cat 词序不匹配;
文本“cat aaa bbb ccc ddd dog”---不匹配,cat dog 之间有 6 个词(包括匹配词),超出匹配长度 5。
输入查询语句 “near((cat, dog), 5, 0)":
文本“cat dog”--- 匹配;
文本“dog cat”--- 匹配,无词序要求。
文本“dog aaa bbb ccc ddd cat”---不匹配,dog,cat 之间有 6 个词(包括匹配词),超出匹配长度 5
输入查询语句 "near( (near((cat, dog), 5, 1), mouse), 8, 0)"
文本“cat dog mouse”--- 匹配;
文本“mouse cat dog”--- 匹配;
文本“dog cat mouse”--- 不匹配,dog, cat 词序不匹配;
文本“cat aaa bbb ccc ddd dog mouse” ---不匹配,cat,dog 词距为 6,超出匹配长度 5;
文本“cat aaa bbb ccc dog aaa bbb ccc ddd mouse”---不匹配,cat, mouse词距为 10 超出匹配长度 8;
文本“cat aaa bbb ccc dog ddd mouse”---匹配, cat 和 dog 词距未超出,cat 和 mouse 词距未超出;
文本“mouse ddd cat aaa bbb ccc dog”---匹配, cat 和 dog 词距未超出,mouse 和 dog 词距未超出;
以上为句法讲解的例子,下面以实际的示例说明。
示例 :查询包含南大两字,词距在 4 的短信。
gbase> SELECT MB_Text FROM sms WHERE contains(MB_Text, '(NEAR((南,大),4,0))');
+--------------------------------------------------------------+| MB_Text |+--------------------------------------------------------------+
| 晚上去南大上英语课,在南大主楼 115 房间|
| 周末去天津博物馆参观,在南开区南门外大街公交车站集合|本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 - 文本匹配条件描述
悬赏问题
- ¥20 iOS绕地区网络检测
- ¥15 python验证码滑块图像识别
- ¥15 根据背景及设计要求撰写设计报告
- ¥15 QT6颜色选择对话框显示不完整
- ¥20 能提供一下思路或者代码吗
- ¥15 用twincat控制!
- ¥15 请问一下这个运行结果是怎么来的
- ¥15 单通道放大电路的工作原理
- ¥30 YOLO检测微调结果p为1
- ¥15 DS18B20内部ADC模数转换器