2013-04-05 261 views
2

我有一个大的网站,有近600.000索引文章,一些查询需要200毫秒执行。加速狮身人面像?

有什么我可以做的,以加快速度?任何经验分享?

我的应用程序是Rails 3.0,带有Thinking Sphinx和最新版本的Sphinx。

这里我搜索的配置:

searchd 
{ 
    listen = <IP>:<PORT> 
    log = < LOG PATH > 
    query_log = < QUERY LOG PATH > 
    pid_file = < PID FILE PATH > 
    max_matches = 100000 
    thread_stack = 1024K 
    read_buffer = 512K 
    read_unhinted = 64K 
    max_filters = 512 
} 

任何帮助将不胜感激。

+0

每次搜索1/5秒?你必须有一些严重的可伸缩性问题需要比那更快地搜索600,000篇文章。 – 2013-04-05 22:13:39

+0

一开始你的max_matches比较高。但是你的'索引'设置更像是会影响速度,比如你的停用词和hitless_words,请张贴。还有您所做的查询类型以及您的服务器规格。你有没有分拆?可以访问多个服务器? – barryhunter 2013-04-05 22:39:22

回答

0

随着思维狮身人面像,你使用最新的Rails 3.0友好版本2.0.14?即使你是这样,最近也有一些改变,增加了连接池/持久的Sphinx连接,并且提供了一个明显的速度提升,因为大多数搜索都没有设置套接字的开销。

则需要通过GIT中,虽然使用了最新:

gem 'thinking-sphinx', 
    :git => 'git://github.com/pat/thinking-sphinx.git', 
    :branch => 'v2', 
    :ref => '6fbbbc0c5d' 

这就是说,巴里的评论是值得关注的,他有一吨的狮身人面像有经验。