【发布时间】:2016-06-28 22:29:52
【问题描述】:
我有一个由 10 个节点组成的集群,我每天在其中索引大约 1 亿条记录。总计接近 60 亿条记录。我不断地加载数据。每条记录有大约 75 个与之关联的字段。我 99% 的查询都是基于同一个字段查询。基本上从 groupid = 'value' 的表中选择 *。大多数返回的查询会带回大约一百条记录。
我的查询目前运行前 2 次大约需要 30 秒,然后以毫秒为单位。问题是所有用户查询都在搜索不同的 groupID,因此在第三次运行之前,大部分查询都会很慢。
是否可以“缓存” groupid 字段,以便获得亚秒级查询。
我当前的查询如下所示。 (伪查询)(我正在使用我认为更好的非分析字段?)
query : {
filtered : {
filter : {
"term" : { groupID : "valuex" }
}
}
}
我已经研究过但不知道该怎么做。我已经研究过 doc_values = yes 和可能的字段缓存?
我不关心得分,总分。我唯一的用例是过滤掉记录,只带回 50 亿个中具有正确 groupID 的 100 个左右。
我们在每台服务器上大约有 64G 内存。
只是寻求有关如何实现最佳性能/缓存的帮助?或任何其他有帮助的东西。
我考虑过路由,但根据我们的 groupid 值这会很困难。
谢谢
【问题讨论】:
标签: elasticsearch lucene