发博文
袖子之家

http://blog.chinaunix.net/space.php?uid=12694881

写一些自己乱想的怪事   
个人资料
  • 博客访问:59269
  • 博文数量:27
  • 博客积分:1106
  • 博客等级:少尉
  • 注册时间:2005-11-14 13:43:26
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
分类: 言过其实


Postgresql(http://zh.wikipedia.org/wiki/PostgreSQL) 是一个自由的对象-关系数据库服务器(数据库管理系统)其特性包括:

  • 复杂查询
  • 外键
  • 触发器
  • 视图
  • 事务完整性
  • 多版本并发控制
目前最新版本8.3.6,拥有多种系统的发行版本,在全文检索上面使用Tsearch(http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/)使用方法比较简单,
安装tsearch2,只要去到postgresql的源代码目录,/tmp/postgresql-8.3.6/contrib/tsearch2/
可能你们解压的目录不同,请对应,进到tsearch2目录之后,运行:gmake && gmake install 就可以安装好二进制文件,接着,运行当中的一个叫 : psql postgres -U postgres < tsearch2.sql 这个是注册 tsearch2 的函数文件 如果不能直接运行 psql,请更改路经,目前已安装完成,

测试如下面的例子
我们先创建一个表:
        CREATE TABLE tblMessages
(
intIndex int4,
strTopic varchar(100),
strMessage text,
idxFTI tsvector
);
新着,我们插入一些数据

INSERT INTO tblMessages
VALUES ('8', 'My birth address',
'18 Sommervile road, Regina, Saskatchewan',to_tsvector(strTopic||' '||strMessage));
INSERT INTO tblMessages
VALUES ('9', 'Joke', 'knock knock : who\'s there? I will not finish this joke',to_tsvector(strTopic||' '||strMessage)
);
INSERT INTO tblMessages
VALUES ('10', 'Computer information',
'My computer is a pentium III 400 mHz'
' with 192 megabytes of RAM',to_tsvector(strTopic||' '||strMessage)
);

先插入三条

我们进行简单的搜索

SELECT intindex, strtopic FROM tblmessages
WHERE idxfti @@ to_tsquery('default', 'Computer| Joke');
intindex | strtopic
----------+--------------------
10 | Computer information
9 | Joke
(2 rows)

可以看到,使用 idxfti @@ to_tsquery 的方式来进行搜索

在Tsearch2中,可以用到语义,字典,分数算法,在分数算法上面,会对字与字之间的距离,关键字词出现的次数等进行分值对比
如下:
SELECT id, headline(doc, q), rank(vector, q)
FROM docs, to_tsquery($1) AS q
WHERE vector @@ q ORDER BY rank(vector, q) DESC'


来自 www.bowenye.com



前一篇:新年快乐
亲,您还没有登录,请[登录][注册]后再进行评论