elasticsearch:部分更新的最佳方式是什么?

时间:2017-02-02 10:35:12

标签: elasticsearch

我有这样的映射:

{
  "properties":{
    "staticField1": ...
    "staticField2": ...
    ...
    "staticFieldN": ...
    "currentNumbers": {
      "properties": {
        "highFrequencyUpdateField1": ...
        "highFrequencyUpdateField2": ...
        "highFrequencyUpdateField3": ...
      }
    }
  }
}

因此,有许多staticFields,几乎从不更新,但currentNumbers节点中的某些字段必须每隔几分钟更新一次。

我目前POST只有currentNumbers节点的部分更新,但由于此处的所有内容都在一个大文档中,因此这将在内部重新编制完整文档的索引。

我想要实现的是

的某种方式
  • 仅替换currentNumbers节点而没有弹性搜索需要重新索引所有staticFields
  • 能够通过highFrequencyUpdateFieldsstaticFields的组合查询文档(因此我无法将它们视为完全独立的实体)

根据我在文档中阅读的内容,我得到以下两个选项:

  • "嵌套"数据类型
  • 父/子文档

关于亲子关系:这似乎带来了更糟糕的查询表现,我不想在这里牺牲。

我在文档中找不到的内容:nested在索引性能方面是否对我有所帮助,即如果我发布部分内容,重新索引整个文档仅使用currentNumbers节点进行更新?

我认为这可能是弹性搜索的常用用法,所以我希望有关如何构建映射的更好的想法;)。

0 个答案:

没有答案