postgreSQL9.1集成bamboo的使用

前端之家收集整理的这篇文章主要介绍了postgreSQL9.1集成bamboo的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

关于中文分词如何集成使用,网上是有写例子的,之前我也写总结了下。

不过数据源可以是varchar类型的,也可以text类型。

然后通过安装后的两个分词函数tokenize和to_tsvector。使用的场景不一样。
这里我首先假设了一个数据源(该表是将数据源和索引字段放在一起)


其中content为源内容,idx_fti为content的索引内容
然后可以在idx_fti上面建立索引,sql语句如下:
create index 索引名 on 表名 using gist('列名')

idx_fti里存放的内容,是sql语句如下:
update 表名 set idx_fti=to_tsvector(‘chinesecfg',coalesce(content,''));

首先说下tokenize函数
运行如下sql命令:
select tokenize('男士T恤');
返回结果如下:


这里是将语句做了分词处理,为什么要做语句分词处理呢?那是因为
select content from 表名 where idx_fti @@ '男士T恤';
或者是语句:
select content from 表名 where idx_fti @@ to_tsquery('男士T恤');
是无法获取到结果的。
返回的结果是NULL,查不出来任何的信息。

所以必须通过了分词处理后,将以空格作为分割,转换格式(这一步骤是通过程序来实现的),得到“男士|T|恤”,这样的形式。
然后再去查询,语句变成:
select content from 表名 where idx_fti @@ '男士|T|恤';
就可以得到结果了,如图:



在我另一篇安装的文章里,创建了一个chinese_utf8.stop文件
这个文件就是用来输入需要屏蔽词,提高全文检索的效率,命令如下:
echo "的" | iconv -f gbk -t utf8 > chinese.stop.utf8 (如果你的终端是UTF8的,则可以忽略 iconv 语句。)
需要输入更多的屏蔽词的话,用命令:
echo "屏蔽词" | iconv -f gbk -t utf8 >> chinese.stop.utf8

这里还要注意一个问题,就是
to_tsvector(‘chinesecfg',''))和to_tsvector(coalesce(content,'')),生成的索引记录是不一样的,后者生成值如下:

原文链接:https://www.f2er.com/postgresql/196818.html

猜你在找的Postgre SQL相关文章