热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

详细讲解PostgreSQL中的全文搜索的用法

源地址:http:www.jb51.netarticle64544.htm开发Web应用时,你经常要加上搜索功能。甚至还不知能要搜什么,就在草图上画了一个放大镜。搜索是项

源地址:http://www.jb51.net/article/64544.htm

开发Web应用时,你经常要加上搜索功能。甚至还不知能要搜什么,就在草图上画了一个放大镜。

搜索是项非常重要的功能,所以像elasticsearch和SOLR这样的基于lucene的工具变得很流行。它们都很棒。但使用这些大规模“杀伤性”的搜索武器前,你可能需要来点轻量级的,但又足够好的搜索工具。

所谓“足够好”,我是指一个搜索引擎拥有下列的功能:

  •     词根(Stemming)
  •     排名/提升(Ranking / Boost)
  •     支持多种语言
  •     对拼写错误模糊搜索
  •     方言的支持

幸运的是PostgreSQL对这些功能全支持。


本文的目标读者是:

  •     使用PostgreSQL,同时又不想安装其它的搜索引擎。
  •     使用其它的数据库(比如MySQL),同时需要更好的全文搜索功能。

本文中我们将通过下面的表和数据说明PostgreSQL的全文搜索功能。

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
CREATE TABLE author(
  id SERIAL PRIMARY KEY ,
  name TEXT NOT NULL );
CREATE TABLE post(
  id SERIAL PRIMARY KEY ,
  title TEXT NOT NULL ,
  content TEXT NOT NULL ,
  author_id INT NOT NULL references author(id) );
CREATE TABLE tag(
  id SERIAL PRIMARY KEY ,
  name TEXT NOT NULL );
CREATE TABLE posts_tags(
  post_id INT NOT NULL references post(id),
  tag_id INT NOT NULL references tag(id)
  );
INSERT INTO author (id, name )
VALUES (1, 'Pete Graham' ),
   (2, 'Rachid Belaid' ),
   (3, 'Robert Berry' );
  
INSERT
推荐阅读
author-avatar
mobiledu2502887507
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有