Postgresql中如何进行文本检索
时间:2011-05-10
来源:互联网
小弟在做一个关于Postgresql对文本检索的研究,但是现在很困惑,如果要检索文本,我肯定先要将文本存入表中,用tsvector的格式,但是这样我在查找表的时候不又变成了表查找了吗?如何利用Postgresql进行文本检索?如何在Postgresql中建立倒排索引?请求解答,最好能给例子。(英文文本检索,不需中文)谢谢!
作者: danieldpr 发布时间: 2011-05-10
PG是个数据库,我猜你需要的是搜索引擎。
作者: gvim 发布时间: 2011-05-10
PG是个数据库,我猜你需要的是搜索引擎。
作者: gvim 发布时间: 2011-05-10
PG是个数据库,我猜你需要的是搜索引擎。
作者: gvim 发布时间: 2011-05-10
把TSVECTOR字段做全文索引,索引类型一般为GIN,或作GIST,我用的是GIN .
查找的时候,匹配该字段就可以了,假设该字段名称为:fts_keywords,要查找关键字是ABC,
那么格式类似:
SELECT * FROM TABLE WHERE fts_keywords @@ to_tsquery('ABC');
数据库当然是从表里面查找,不是想GOOGLE那样基于文本查找,这种查找模式可以解决标准SQL的缺陷:
比如 SQL 的 LIKE '%ABC%',它不能利用索引,所以速度非常的慢,而采用全文搜搜,速度就非常的快,
如果同时要搜索一个表的多个字段,那么传统的SQL 就很麻烦,且效率低下,而用全文搜索,语法就非常简洁,
查找的时候,匹配该字段就可以了,假设该字段名称为:fts_keywords,要查找关键字是ABC,
那么格式类似:
SELECT * FROM TABLE WHERE fts_keywords @@ to_tsquery('ABC');
数据库当然是从表里面查找,不是想GOOGLE那样基于文本查找,这种查找模式可以解决标准SQL的缺陷:
比如 SQL 的 LIKE '%ABC%',它不能利用索引,所以速度非常的慢,而采用全文搜搜,速度就非常的快,
如果同时要搜索一个表的多个字段,那么传统的SQL 就很麻烦,且效率低下,而用全文搜索,语法就非常简洁,
作者: tony_trh 发布时间: 2011-05-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28