全文检索-BTS的使用

1、准备工作如下:
onspaces -c -S sbspace1 -p /data/sbspace1 -o 0 -s 1024000
修改ONCONFIG配置文件SYSSBSPACENAME参数以及SBSPACENAME为sbspace1
onmode -wf SYSSBSPACENAME=sbspace1
onmode -wf SBSPACENAME=sbspace1


2、添加相关vp参数:
VPCLASS        jvp,num=1
VPCLASS        bts,num=1

 

3、创建带日志数据库
echo "create database testdb in datadbs1 with buffered log;" | dbaccess - -

 

4、执行命令注册bts(这一步可不做,创建表时会自动注册)
blademgr
>list testdb 
>show modules
>register bts.3.10 testdb
>register ifxrltree.2.00 testdb
>register spatial.8.21.FC7 testdb
>list testdb

5、创建表,并插入数据
create table lab1(text_data lvarchar(2000),b int);
create index lab1_bts_idx on lab1 (text_data bts_lvarchar_ops) using bts;
bts_lvarchar_ops的构成是bts_索引字段的数据类型_ops
insert into lab1 values ('ssl aa bb',1);
insert into lab1 values ('ssl cc dd',2);
insert into lab1 values ('ssl ee ff',3);
insert into lab1 values ('ssl gg hh',4);

6、查询验证
select b from lab1 where bts_contains(text_data,'gggggg');
bts_contains函数有两个变量,第一个是字段的数据类型,第二个是需要匹配的字符串。


7、灵活的匹配方式
      and匹配有两种形式:
select b from lab1 where bts_contains(text_data,'gggggg') and bts_contains(text_data,'hh');
select b from lab1 where bts_contains(text_data,'gggggg and hh'); 
     or匹配有两种形式:
select b from lab1 where bts_contains(text_data,'gggggg') or  bts_contains(text_data,'hh');
select b from lab1 where bts_contains(text_data,'gggggg or hh'); 
      还支持正则表达式匹配:
select *  from lab1 where bts_contains(text_data,'h?');
select *  from lab1 where bts_contains(text_data,'h*');

除了lvarchar还支持blob智能大对象:
建立测试用表:
create table btstest 
  ( col1 integer,  col2 clob  );
 导入测试数据:
INSERT INTO BTSTEST VALUES (1,filetoclob('/home/informix/etc/onconfig.std','server'));
INSERT INTO BTSTEST VALUES (2,filetoclob('/etc/hosts','server'));
create index btsidx on btstest (col2 bts_clob_ops) using bts ;
select col1 from btstest where bts_contains(col2,'BUFFERPOOL');

 

详见《IBM Informix 11.5 Extensibility - Basic Text Search(BTS)》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
导航的根源在于分类,当有100条信息的时候,我们使用类别来定位信息,当有10000条信息的时候,我们用标签来定位信息,当有100..00条信息的时候,无论怎么分类都是难以寻找的,于是就有了搜索… 当一个网站信息越积越多,搜索将会变得越来越重要。以至于终于有一天,当网站发现50%以上的用户来到你的网站第一件事是搜索的时候,搜索就将成为没有“导航”的导航。因此站内搜索成了网站建设的当务之急。随着网络应用的深入,信息量的爆炸性增长,站内搜索成为每个优秀网站必须具备的功能。纵观中国大中小网站,绝大多数网站在海量数据面前一筹莫展,主要表现为: 1、 搜索结果不够精确。索出来的结果往往不是我们需要的,你不得不进行若干次翻页,才能找到自己需要的内容。 2、 搜索速度慢、极慢。一般的搜索都是通过SQL语句中的LIKE关键字实现搜索功能,但LIKE在数量较大时,速度很慢,甚至会导致服务器磐机。 3、 搜索不到正文。与第二条类似,LIKE关键字只能对短文本进行比较操作,而对正文这种长文本,不能进行操作,这时我们的正文中即使有我们需要的内容,但却不能完成搜索任务。 4、 不支持多关键词搜索。只能对一个关键词进行搜索,在实际搜索中,搜索者一般会通过两个关键词进行搜索,缩小搜索范围,以达成自己的意愿。 5、 超长词条搜索不到结果。如果要让超长词条进行完全匹配,那搜索结果可能会极为稀少或者根据找不到搜索结果。 6、 比以上情况稍好的情况。在有的CMS系统中,可以为正文指定关键词,但由于并非专门的搜索引擎算法及结构,也只能是杯水车薪、望洋兴叹,如1、并不能进行相关度排序,2、必须手动或者半自动完全关键词,3、同样不支持超长词条搜索,4、搜全率低,5、新词不能识别,6、只能对CMS范围内的网页进行搜索,7、人工操作效率低下,等等。 为解决以上问题,边缘工作室经过长期的调研,不断摸索、反复实验,厚积薄发,并根据当前趋势开发出了“易搜索-智能全文检索站内搜索引擎”,简称为YSS,使以上问题迎刃而解。YSS主要有以下特点: 1、如你所需,他是真正的搜索引擎: 2、 网页蜘蛛灵活高效。 3、可控的正文提取。 4、可控的中文分词及新词学习。 5、无人值守。 6、BS架构,虚拟主机支持。 7、强大功能,简单使用。 8、个性化。 9、增强网站软实力: 9.1快速找到访问者所需信息,更好的浏览体验,提高用户操作的友好度 9.2提高的用户粘度 9.3提高的PV量 9.4增强网站技术含量 9.5领先竞争对手 9.6让你的网站更专业
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我曾阿牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值