【问题标题】:ElasticSearch reindex reasonsElasticSearch 重新索引原因
【发布时间】:2019-02-27 13:37:55
【问题描述】:

我正在迁移到 elasticSearch 并想找出一些问题。 我将使用静态+动态映射(字段的静态类型,我将在搜索期间用于过滤,将来不会更改它们的类型)。据我了解,我可以将不同的数据放入索引然后更改它。示例:

{
  "name": "John",
  "secondName": "Smith",
  "age": 20,
  "params" : [
    {
      "a": "b",
      "c": "d"
    },
    {
      "m": "n"
    }
  ]
}

然后将此记录更改为:

{
  "name": "John",
  "secondName": "Smith",
  "age": "20",
  "newparams": [
    {
      "a": "b",
      "c": "d"
    },
    {
      "m": "n"
    }
  ]
}

所以我可以在不重新索引的情况下做到这一点。我可以更改字段,可以添加新字段,这是什么原因迫使我重新索引?

编辑

主要目标是使用elastic而不是DB来提升性能。会有存储空间,我只会从中检索信息。搜索将依赖于具有静态映射的某些字段,我不会更改它们的类型。但是将来,我可能需要添加一些字段或类似的东西,我想知道我的哪些操作导致我需要重新索引?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    Elasticsearch 提供了一个 reindex api,它在内部做这种事情,看看here。或者,您也可以使用update api 更新您的文档。

    【讨论】:

    • 好的,我看到了这个页面,里面有reindexing的描述。我想在将来避免它,这就是为什么我想知道所有reasons 的重新索引以正确的方式构建弹性结构。
    • 如果您的数据包含一些新的属性,而这些新属性没有确定的方法,您可以如何根据您的数据现在拥有的属性计算它,您需要重新索引它。
    • 可能我的问题不是很清楚,我已经添加了一些解释
    • 您可以毫无问题地将字段添加到现有索引(并在需要时使用此新字段更新旧文档)但是根据此映射作为具有映射和索引字段的弹性“类型”,您无法更改现有字段的映射,您必须重新索引您的文档。
    • 正是我需要的!所以唯一的限制是不要更改现有字段的类型并发送适当类型的值,对吧?
    猜你喜欢
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 2012-09-07
    • 2021-08-14
    • 1970-01-01
    • 2017-01-25
    • 2014-11-12
    相关资源
    最近更新 更多