怎么用php+sphinx+mongodb来打造千万级搜索??求助

PHP007 发布于 2012/02/06 16:30
阅读 8K+
收藏 3

怎么用php+sphinx+mongodb来打造千万级搜索??求助?

有人说用xmlpipe2 ,用PHP读取mongodb输出,然后sphinx来搜索

有一个疑问就是mongodb千万级数据 用这种方法会不会很慢。。之前有做给一个测试,感觉有点慢,sphinx经常断开。

求赐教好的方法。。元宵节快乐。

以下是问题补充:

@PHP007:瓶颈主要不是Mongodb 我一个项目2000多W数据,用py数据源。项目很多搜索 都已经生成链接,百度,google爬虫来抓取的时候 会有大量的搜索,就是不知道怎么来解决这个问题。(如果用Js模拟链接,在SEO上就没有优势) (2012/02/08 17:40)
加载中
0
小吉
小吉
python 数据源 ,  主索引+增量索引
PHP007
PHP007
你用在千万级数据上试过没。。,而且搜索量非常大 是访问量的2-3倍
0
谢中辉
谢中辉
sphinx支持mongodb吗?
0
deleted
deleted
mongo做千万级应用准备最少上半个机柜大内存机吧
0
sidneysu
sidneysu

引用来自“谢中辉”的答案

sphinx支持mongodb吗?
sphinx不能直接支持mongodb的。我们之前是用python来建立sphinx和mongodb之间的数据接口。sphinx索引完成之后,搜索动作时在sphinx自身的索引文件上完成的,不涉及的对数据库的搜索了。然后php再根据sphinx给出的id去读mongodb就可以了,怎么会出现断开什么的?
不过python去读mongodb的速度肯定要比sphinx自己直接读mysql要慢,有实力的话可以自己用c写个接口。
0
PHP007
PHP007

引用来自“false”的答案

mongo做千万级应用准备最少上半个机柜大内存机吧
我24G内存
0
hapming
hapming

引用来自“sidneysu”的答案

引用来自“谢中辉”的答案

sphinx支持mongodb吗?
sphinx不能直接支持mongodb的。我们之前是用python来建立sphinx和mongodb之间的数据接口。sphinx索引完成之后,搜索动作时在sphinx自身的索引文件上完成的,不涉及的对数据库的搜索了。然后php再根据sphinx给出的id去读mongodb就可以了,怎么会出现断开什么的?
不过python去读mongodb的速度肯定要比sphinx自己直接读mysql要慢,有实力的话可以自己用c写个接口。

python+sphinx+mongodb以前也这样做过。。千万级!!没试过。

估计sphinx要分布式,mongodb性能影响应该会小一点。。。

另外给sphinx做缓存。。还有有其它方法??

hapming
hapming
sphinx做raid主要提升磁盘速度吧。
0
sidneysu
sidneysu

引用来自“hapming”的答案

引用来自“sidneysu”的答案

引用来自“谢中辉”的答案

sphinx支持mongodb吗?
sphinx不能直接支持mongodb的。我们之前是用python来建立sphinx和mongodb之间的数据接口。sphinx索引完成之后,搜索动作时在sphinx自身的索引文件上完成的,不涉及的对数据库的搜索了。然后php再根据sphinx给出的id去读mongodb就可以了,怎么会出现断开什么的?
不过python去读mongodb的速度肯定要比sphinx自己直接读mysql要慢,有实力的话可以自己用c写个接口。

python+sphinx+mongodb以前也这样做过。。千万级!!没试过。

估计sphinx要分布式,mongodb性能影响应该会小一点。。。

另外给sphinx做缓存。。还有有其它方法??

给sphinx做缓存?什么意思?你可以直接把所有的查询结果放到memcache里面啊,如果不存在数据过期或者更新的话;还可以试试把sphinx的index文件放到/dev/shm里面,做好重启后重新索引的脚本就是了。
hapming
hapming
做二次缓存也可。。 应该大部分消耗在sphinx上吧。。这个倒是没测试过。。
hapming
hapming
如果同时缓存mongodb中的文本数据的话,内存占用大了。所以只缓存sphinx的数据。
hapming
hapming
就是"你可以直接把所有的查询结果放到memcache里面"
0
sidneysu
sidneysu

引用来自“qeenoo”的答案

引用来自“false”的答案

mongo做千万级应用准备最少上半个机柜大内存机吧
我24G内存
sphinx索引文件多大?mongodb文件多大?
0
PHP007
PHP007

引用来自“sidneysu”的答案

引用来自“qeenoo”的答案

引用来自“false”的答案

mongo做千万级应用准备最少上半个机柜大内存机吧
我24G内存
sphinx索引文件多大?mongodb文件多大?
mongodb 文件有12G 
0
sidneysu
sidneysu

引用来自“qeenoo”的答案

引用来自“sidneysu”的答案

引用来自“qeenoo”的答案

引用来自“false”的答案

mongo做千万级应用准备最少上半个机柜大内存机吧
我24G内存
sphinx索引文件多大?mongodb文件多大?
mongodb 文件有12G 
哦?需要索引的db多大?sphinx直接索引mysql,中文内容的话速度是每秒5MB,用python读mongodb的话,索引速度只有每秒1MB多点。这样的话需要设计好增量索引了。
返回顶部
顶部