KingbaseAnalyticsDB 学习之全文检索

全文检索是一种用于查找与给定查询相关的文档的技术。它在信息检索、数据库管理和自然语言处理等领域中得到了广泛的应用。

全文检索系统通常包括两个主要部分:索引和搜索引擎。

索引是对文档内容的一种表示,它可以使搜索引擎快速找到与查询相关的文档。

搜索引擎则是用户与索引之间的接口,它接受用户的查询并返回与之相关的文档。

全文检索的核心思想是将文档中的每个词或短语作为一个独立的索引项,并为每个索引项分配一个唯一的标识符。当用户提交查询时,搜索引擎将查询中的每个词或短语转换为对应的标识符,然后在索引中查找与这些标识符匹配的文档。

全文检索的优点在于它可以快速找到与用户查询相关的文档,并且可以处理大规模的文档集合。它的缺点在于它不能很好地处理语义和上下文信息,因此可能会返回不相关的文档。 总的来说,全文检索是一种非常重要的技术,它在信息检索、数据库管理和自然语言处理等领域中发挥着重要的作用。随着技术的不断发展,全文检索系统也在不断改进,以提高其效率和准确性。

人大金仓的分析型数据库KingbaseAnalyticsDB 集成了该项技术大大提升了文档查询的工作效率。

测试全文检索

创建表

CREATE TABLE full_index_test (MB_No char(11), MB_Text varchar(1000) DEFAULT NULL);

插入数据

INSERT INTO full_index_test VALUES('13023315123','北大开设 java 编程培训班,每周五晚上 7:00-9:00 上课');

INSERT INTO full_index_test VALUES('13023315123','他在北京上的大学,主修课程是java和python');

INSERT INTO full_index_test VALUES('13521000123','北京大学开设考研培训班,学期 3 个月,每周六、日上课,欢迎报名,咨询 40088800');

INSERT INTO full_index_test values('13023315123','晚上去北大上英语课,在北大主楼 115 房间');

INSERT INTO full_index_test VALUES('13023315123','周末去北京博物馆参观,在北开区北门外大街公交车站集合。 ');

INSERT INTO full_index_test VALUES('13023300023','本公司负责办理各种文*凭、证/件,绝对保真,电话联系: 022-30088200。 ');

INSERT INTO full_index_test VALUES('13023300023','明天去公司办公柜里查找合同文件、档案和报销凭证。 ');

INSERT INTO full_index_test VALUES('13988213328','周六上午 9 点去水上公园,在东门集合,对着北京天塔');

INSERT INTO full_index_test VALUES('13323315181','北大公司地址:北京中关村产业园区300384)');

INSERT INTO full_index_test VALUES('13323315181','公司是由北京大学开办的高薪技术产业公司');

INSERT INTO full_index_test VALUES('13521015341','本小学为 6 到 12 岁儿童开办语文、数学和英语培训班');

查询带有中文的分词

  1. 全局检索配置
CREATE TEXT SEARCH CONFIGURATION zhcfg (PARSER = zhparser);

ALTER TEXT SEARCH CONFIGURATION zhcfg ADD MAPPING FOR n,v,a,i,e,l,x WITH simple;

        查询中文分词

select * from full_index_test where to_tsvector('zhcfg',mb_text) @@ to_tsquery('北大');

zhparser是一个中文分词插件,可以支持中文的全文检索(Full Text
Search)。英语的分词原理很简单,按照标点、空格切分语句即可获得有含义
的词语,数据库内置的parser就是按照这个原理来分词的。而中文相对复杂,词
语之间没有空格分割,长度也不固定,怎么分词有时还和语义有关,自带的
parser不能用于中文分词。使用zhparser这个插件可以使数据库支持中文分词,
继而可以做中文全文检索。

查询带有自定义分词

select * from full_index_test where to_tsvector('zhcfg',mb_text) @@ to_tsquery('北大公司');

SELECT * FROM ts_parse('zhparser', '北大公司');

自定义分词

insert into zhparser.zhprs_custom_word values('北大公司');

更新到词库文件

select sync_zhprs_custom_word();

重新登录数据库,执行中文查询

select * from full_index_test where to_tsvector('zhcfg',mb_text) @@ to_tsquery('北大公司');

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值