【问题标题】:Solr - Use of Cache in Billion DataSolr - 在十亿数据中使用缓存
【发布时间】:2014-09-10 14:15:41
【问题描述】:

我们有 SOLR 在 23 台机器上存储 30 亿条记录,每台机器有 4 个分片,只有 2.3 亿个文档有一些像 aliasName 这样的字段。目前 queryCache 或 documentCache 或 Filter Cache 已禁用。

问题:我们正在尝试获取具有类似 (q=alisaName:[* TO *] AND firstname:ash AND lastName:Coburn) 的查询的结果在 4.3 秒内返回匹配文档。基本上,我们只想要那些匹配的名字和姓氏记录,其中 aliasName 不为空。

我正在考虑启用过滤查询 fq=aliasName:[* TO *] 并且不确定它是否会使其更快,因为每个查询中的名字和姓氏大多不同?我们应该为过滤查询分配多少内存来执行?它不应影响其他现有查询,例如 q=firstanme:ash AND last name:something)

请不要担心 I/O 操作,因为我们使用的是闪存驱动器。

如果您曾处理过类似问题并提出最佳解决方案,非常感谢您的回复。

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    根据 solr 文档...

    过滤缓存 此缓存存储与键匹配的无序文档 ID 集(通常是查询)

    网址:https://wiki.apache.org/solr/SolrCaching#filterCache

    所以我认为这归结为两件事:

    • 您拥有的具有填充 aliasName 的文档的百分比是多少?在我看来,如果大多数文档都填充了这个字段,那么过滤器缓存可能就没用了。但是,如果只是一小部分文档,过滤器缓存会产生巨大的性能影响,并且使用的内存更少。

    • 您使用的是哪种 ID?虽然我假设文档指的是 lucene 文档 ID,而不是 solr Id。但也许更小的 Solr Id 也可能导致更小的缓存大小(我不确定)。

    最后你将不得不进行试验,看看效果如何,也许先在几个节点上尝试,看看是否有性能改进。

    【讨论】:

    • 感谢您的反馈!我将尝试使用过滤器缓存,看看它是否会提高性能。
    猜你喜欢
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多