首页 > 解决方案 > ElasticSearch:我可以在一个索引中包含一些(所有子集)字段“冻结==按需索引”吗?

问题描述

假设我每天有以下类型的文档和许多索引(数百个)(每天的数据 Ts):

{
  "date_time":"07/May/2019:02:37:19  +0000",
  "ip":"17.15.15.15", 
  "status":"200",
  "request_url":"https://my.domain.com/some/long/path/to/page",
  "response_time": "0.01"
}

前 3 个字段(date_time、ip、status)将被大量搜索/聚合,每秒/分钟几次。

最后两个字段(request_url,response_time)将很少被搜索 - 每月一次甚至几个月 - 但它们会被搜索。

对于这些要求,最有效的映射是什么?显然,前 3 个字段必须完全索引,如 doc_type。

最后 2 个不常搜索的呢?如果我完全禁用它们的索引 - 设置“启用”= FALSE(我必须将它们移动到单独的对象中,因为无法禁用 AFAIK 单个字段,只有对象) - 那么我将永远无法搜索它们,除非我搜索 _source 内容。鉴于我拥有的数据量(Ts 数据,数百个索引,每天) - 它会杀死我的集群 :)

我几乎在寻找像“冻结”索引这样的选项 - 索引结构按需加载到内存中。但是,我需要在字段级别,而不是整个索引级别。这样只有一部分字段会被“按需索引”

有什么建议么?

谢谢!

码头

标签: elasticsearch

解决方案


推荐阅读