2010-07-10 46 views
1

我有一个新闻网站有150,000条新闻报道。每隔5-15分钟就会向数据库添加大约250篇新文章。据我所知,Solr已经为数百万条记录进行了优化,我的150K不会成为它的问题。但我担心频繁更新会成为一个问题,因为每次更新都会导致缓存失效。在我的开发服务器中,一个页面的冷加载需要5-7秒才能加载(因为每个页面都运行几个MLT查询)。索尔不断更新索引

它会帮助,如果我把我的索引分成两个 - 归档索引和最新索引。档案索引将每天更新一次。

任何人都可以提出任何方法来优化我的安装不断更新的索引?

谢谢

+0

你能指定“有几个MLT查询”有多少个?您每页运行多少个Solr查询? – 2010-07-10 21:38:00

+0

你在使用什么客户端平台? – 2010-07-10 22:05:57

+0

我的本地开发服务器是Mac。生产服务器是CentOS。 部分索引页包含20篇文章,每篇文章都有MLT查询。而文章页面包含两个MLT查询。 – 2010-07-11 06:38:31

回答

1

我的答案是:测试它!如果你不知道它是如何执行的,不要尝试优化。就像你所说的那样,150K不是很多,建立一个适合你测试的大小索引应该很快。之后,在索引更多文档以查看其行为方式时,从不同的并发线程(模拟用户)运行几个MLT查询。

您应该注意的一个设置是自动提交。由于您经常编制索引,因此您无法在每个文档中进行提交(您将调低Solr)。您将为此设置选择的值将允许您调整系统的延迟时间(在结果中返回新文档需要多少次),同时保持系统响应。

+0

我喜欢调整COMMIT间隔的想法。您应该可以随时添加文档,并定期进行COMMIT。然后,您只需每隔一段时间支付一次重新缓存。 – 2010-08-10 17:35:44

0

考虑在主查询中使用mlt = true,而不是发布每个结果MoreLikeThis查询。您将节省往返时间,因此速度会更快。