【问题标题】:Solr for constantly updating indexSolr 用于不断更新索引
【发布时间】:2011-03-14 07:05:26
【问题描述】:

我有一个包含 150,000 篇新闻文章的新闻网站。每天大约有 250 篇新文章以 5-15 分钟的间隔添加到数据库中。我知道 Solr 已针对数百万条记录进行了优化,我的 150K 不会成为问题。但我担心频繁更新会成为问题,因为每次更新都会使缓存失效。在我的开发服务器中,页面的冷加载需要 5-7 秒才能加载(因为每个页面都运行一些 MLT 查询)。

如果我将我的索引分成两部分 - 存档索引和最新索引,会有帮助吗?归档索引每天更新一次。

谁能建议任何方法来优化我的安装以实现不断更新的索引?

谢谢

【问题讨论】:

  • 你能指定多少是“几个MLT查询”吗?您每页总共运行了多少个 Solr 查询?
  • 您使用的是什么客户端平台?
  • 我的本地开发服务器是 Mac。生产服务器是 CentOS。一个部分索引页面包含 20 篇文章,每篇文章都有一个 MLT 查询。而文章页面包含两个 MLT 查询。

标签: search solr full-text-search morelikethis


【解决方案1】:

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

您应该注意的一个设置是自动提交。由于您不断地进行索引,因此您不能在每个文档上提交(您将关闭 Solr)。您为此设置选择的值可让您调整系统的延迟(新文档在结果中返回所需的次数),同时保持系统响应。

【讨论】:

  • 我喜欢调整 COMMIT 间隔的想法。您应该能够一直添加文档并定期提交。然后,您只需为每个间隔支付一次重新缓存。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    相关资源
    最近更新 更多