Tag Archives: postgresql
用sphinx轻松搞定方便管理的多节点过亿级数据搜索
概述 来自俄罗斯的开源全文搜索引擎软件Sphinx,单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级),实测千万级数据在0.0X秒和0.00X秒占大多数。 Sphinx创建索引的速度为:创建100万条记录的索引只需3~4分钟,实测30W线上复杂的blog数据需要5分钟,创建1000万条记录的索引可以在50分钟内完成,实测时间比这个更长得多,而只包含最新10万条记录的增量索引,重建一次只需几十秒,实测十万条在一分钟不到的时间。 Sphinx 是一个基于 GPL 2 协议颁发的免费开源的全文搜索引擎.它是专门为更好的整合脚本语言和SQL数据库而设计的.当前内置的数据源支持直接从连接到的 MySQL 或 PostgreSQL 获取数据, 或者你可以使用 XML 通道结构(XML pipe mechanism , 一种基于 Sphinx 可识别的特殊xml格式的索引通道) 。 sphinx安装 安装见 用Sphinx快速搭建站内搜索功能 配置多节点协同工作 第一点,原理 在sphinx.conf中可以配置index段落里的local和agent两个参数,local = blog_1表示使用本地索引名为blog_1的索引,agent = 10.1.1.1:3312:blog_2表示使用10.1.1.1这个机器的3312端口上服务的blog_2索引。这两个参数均可在此段落中重复出现。 利用这两个参数,可进行节点与节点间的配置。如图1所示,一个searchd服务在接到请求时两种使用索引的示意图。 图1 一个searchd服务在接到请求时两种使用索引的示意图
校内UGC技术讲座:postgreSQL Search slide共享
PostgreSQL Search 提前放出这次Tech Talk的slide,show给所有人。讲述的主题是postgreSQL的基础和利用bamboo做全文检索的方法。
[原创]mediawiki安装改进手记-使用mediawikit和postgresql搭建有强大搜索功能的wiki
[ 文章作者:陈臻 本文版本:v1.1 最后修改:2009.7.28 转载请注明原文链接:http://www.54chen.com/c/640 ] 在yahoo工程技术部,最有趣的事情当属打开工程技术部的wiki,慢慢阅读来自前辈们的大作。 yahoo以前使用的是twiki,后来更换了mediawiki,扩展了postgresql的搜索,使mediawiki的搜索功能得到了加强,这里,记录下我在校内搭建一整套的手记: 第一步.准备php和postgresql环境 大环境:因为是内部系统,所以图省事,WEB使用的是一个ubuntu的机器,安装这些丝毫不用费力了。就是先用apt安装php、nginx,源码包安装lighttpd取spawn-cgi一枚备用。源码包安装postgresql8.3.3。 #apt-get install php5 php5-pgsql php5-mbstring php5-cgi #apt-get install nginx #wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz #tar -xvf lighttpd-1.4.19.tar.gz #cd lighttpd-1.4.19/ #./configure #make #cp src/spawn-fcgi /usr/local/bin/spawn-fcgi (这里图快,没使用php-fpm) #adduser www #spawn-fcgi -a 127.0.0.1 -p 9000 -C …
[原创]使用postgreSQL+bamboo搭建比lucene方便N倍的全文搜索 第二部分
[文章作者:陈臻 本文版本:v1.0 最后修改:2009.7.17 转载请注明原文链接:http://www.54chen.com/_linux_/postgresql-bamboo-lucene-part2.html ] 书接上回。上回说到建立好一整套的中文分词和pgsql的环境,这回来说如何搜。 一、基础篇 本回从一条sql开始: select * from dbname where field_name @@ 'aa|bb' order by rank(field_name, 'aa|bb'); 从这个sql字面意思讲解:从 dbname这个表中查field_name匹配aa或者是bb的词,并且按照他们的匹配的RANK排序。 基本上明白上面这段话后,来学习四个概念:tsvector、tsquery、@@ 、gin。 1.tsvector: 在postgreSQL 8.3自带支持全文检索功能,在之前的版本中需要安装配置tsearch2才能使用。它提供两个数据类型(tsvector,tsquery),并且通过 动态检索自然语言文档的集合,定位到最匹配的查询结果,tsvector正是其中之一。 一个tsvector的值是唯一分词的分类列表,把一话一句词格式化为不同的词条,在进行分词处理的时候,tsvector会自动去掉分词中重复的词条,按照一定的顺序装入。例如 SELECT 'a fat cat sat on a mat and ate a …
[原创]使用postgreSQL+bamboo搭建比lucene方便N倍的全文搜索 第一部分
[文章作者:陈臻 本文版本:v1.2 最后修改:2009.7.7 转载请注明原文链接:http://www.54chen.com/_linux_/postgresql-bamboo-lucene-fulltextindex.html ] 修正:一些“--”(连续的两个杠)被转成了全角的“-”(一个杠)了,运行不过的试试-变成-- 所有用到到包有: cmake-2.6.4.tar.gz (编nlpbamboo用) CRF++-0.53.tar.gz(同上) nlpbamboo-1.1.1.tar.bz2(分词用) postgreSQL-8.3.3.tar.gz(索引用) 安装pgsql tar -zxvf postgreSQL-8.3.3.tar.gz cd postgre-8.3.3 ./configure --prefix=/opt/pgsql make make install useradd postgre chown -R postgre.postgre /opt/pgsql su - postgre vi ~postgre/.bash_profile 添加 export PATH PGLIB=/opt/pgsql/lib PGDATA=/data/PGSearch PATH=$PATH:/opt/pgsql/bin …
配置一个使用plproxy的PostgreSQL数据库集群
本文只有一个连接 没有那么多内容 http://www.pgsqldb.org/mwiki/index.php/配置一个使用plproxy的PostgreSQL数据库集群
plproxy部署手册
安装过程如下: 1 安装plproxy:下载plproxy.安装完成plproxy后,运行{$PATH_TO_PG}/share/contrib/plproxy.sql 2 建立数据库_proxy; 3 建立plpgsql语言; 4 在_proxy中建立模式plproxy;分配权限 grant all on schema plproxy to <用户>。 5 建立pgcluster; --以上步骤sql语句: CREATE FUNCTION plpgsql_call_handler () RETURNS language_handler AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE C; CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE C; CREATE TRUSTED …
使用plproxy和pgbouncer完成分布式处理
plproxy和pgbouncer都是skype开发的基于postgresql的开源应用;前者主要用于完成分布式计算,后者主要充当数据库连接池;它们的主页在[plproxy]和[pgbouncer] plproxy的特性 使用plproxy类似于RPC;假设我们有A,B两台数据库,在A在创建一个plproxy的function,并指定一些参数和返回值,就可以在B上也创建一个同名的pgsql函数,并指定同样的参数和返回值;这样,在A上调用该function,通过适当地声明,就可以实现在B上调用该函数的同样效果,但结果是在A上返回的; plproxy还能合并多个结点服务器上返回的结果集,就像是这些结果是由一个函数产生的一样,方便客户端操作; plproxy可以指定同时在所有结点服务器上执行操作,或者只在指定的几台服务器上操作,或者只在任意一台结点服务器上执行操作; plproxy默认是自动提交的;也就是说,只要目标服务器的函数执行成功了,它就会提交;这样有可能造成各个结点数据库的状态并不一致;因为可能有的结点执行成功了,有的没有执行成功,但plproxy并不会因为一个结点失败就回滚其它结点的操作 一开始,我们只有一台账户数据库;但随着账户增加,单个数据库肯定满足不了需求;当多台数据库服务器并存的情况下,需要解决负载平衡的问题; 为此,我们在系统的syshostconfig表中存储了一个key为accountNum,value为整数的参数;每次进行开户操作时,先用plproxy在所有数据库上查出该值并返到proxy层;由pgsql函数找出哪个数据库的accountNum最
pgpool安装
下载地址:http://pgfoundry.org/projects/pgpool/ 文件为:pgpool-II-2.0.1.tar,tar xvfj pgpool-II-2.0.1.tar 在pgpool-II-2.0.1目录下,执行./configure --prefix=/home/y/share/pgsql ----with-pgsql=/home/y/share/pgsql, 要求with-pgsql目录必须为pgsql安装目录。 之后执行gmake,sudo gmake install; pgpool需要用PCP命令来连接数据库检索数据,其用户名、密码是在pcp.conf文件中保存的。密码是经过md5加密的,需要用户手工输入。 cp /home/y/share/pgsql/etc/pcp.conf.sample /home/y/share/pgsql/etc/pcp.conf md5加密码可以用/home/y/share/pgsql/bin/pg_md5直接生成 :例/home/y/share/pgsql/bin/pg_md5 postgres 结果为e8a48653851e28c69d0506508fb27fc5 将用户名,密码记入到pcp.conf文件中。 pcp默认端口为pcp_port = 9898。可以在pgpool.conf文件内修改 cp /home/y/share/pgsql/etc/pgpool.conf.sample /home/y/share/pgsql/etc/pgpool.conf,默认连接端口为port = 9999, 默认只允许本地连
PostgreSQL系统安装(Linux)
1. 到 http://www.postgresql.org下载pg8.2.4 source 2. 编译安装pgsql tar xvfj postgresql-8.2.4.tar.bz2 cd postgresql-8.2.4 ./configure --prefix=/home/y/pgsql #注意下一步把这个目录加入你bash的PATH中去 gmake sudo gmake install sudo mkdir /home/y/pgsql/data sudo chown yahoo /home/y/pgsql/data sudo -u yahoo /home/y/pgsql/bin/initdb --locale=zh_CN.UTF-8 --encoding=utf8 -D /home/y/pgsql/data 3.创建数据库 cd /home/y/pgsql/bin sudo -u yahoo ./pg_ctl …
SEARCH
Update
- 54chen Twitter memo 2012-02-12
- 人肉解析riak_admin join
- go语言安装手记
- 54chen Twitter memo 2012-02-05
- Riak Core说明
- maven库nexus拖不到jar包小记
- 服务接入层小结
- 54chen Twitter memo 2012-01-15
- nginx防hashdos模块使用帮助
- 54chen Twitter memo 2012-01-08
- nginx防hashdos模块释出
- 54chen Twitter memo 2012-01-01
- 水煮鱼杯2011年度不得不总结的十件事
- 年终攻击hashDos-哈希表多碰撞实现拒绝服务-破解办法
- 54chen Twitter memo 2011-12-25
