【问题标题】:ElasticSearch Reindex API not analyzing the new fieldElasticSearch Reindex API 未分析新字段
【发布时间】:2018-06-01 03:18:28
【问题描述】:

我有一个名为“Docs”的现有索引,其中包含文档。 我正在创建一个名为“Docs1”的新索引,与“Docs”完全相同,只有一个额外的字段,其中一个属性中带有分析器,我想将其用于自动完成目的。

“文档”索引中的属性

"name": {

     "type": "text",

     "analyzer": "text_standard_analyzer",

     "fields": {

       "keyword": {

         "type": "keyword",

         "ignore_above": 256

       }

     }

   }

“Docs1”索引中的属性将是

{
  "name": {
    "type": "text",
    "analyzer": "text_standard_analyzer",
    "fields": {
      "keyword": {
        "type": "keyword",
        "ignore_above": 256
      },
      "pmatch": {
        "type": "text",
        "analyzer": "text_partialmatching_analyzer"
      }
    }
  }
}

我正在使用 Reindex API 将记录从“Docs”复制到“Doc​​s1”

POST _reindex { “资源”: { “索引”:“文档” }, “目的地”:{ “索引”:“Docs1” } }

当我重新索引时,我希望旧文档包含带有该字段信息的新字段。

我注意到目标索引“Docs1”中的新字段未针对现有数据进行分析。但它会针对我添加的任何新文档进行分析。

请推荐

【问题讨论】:

  • 看一下mappings and reindex命令,你期望elasticsearch怎么知道在新字段里放什么数据?您需要在映射中创建一个多字段或使用“copy_to”。
  • 我已经在使用多字段了。在我的“Docs1”索引定义中,我的“name”属性包含 2 个字段“keyword”和“pmatch”。我想以不同的方式分析同一个字段。
  • 哦,对了,我被格式弄糊涂了。您检查日志是否有错误?
  • 通过添加“类型”重新索引工作
  • POST _reindex { "source": { "index": "sourceindex" }, "dest": { "index": "destindex", "type":"desttype" } }

标签: elasticsearch elasticsearch-5


【解决方案1】:

通过添加“类型”重新索引工作

POST _reindex { “资源”: {“索引”:“源索引”}, “目的地”: {“索引”:“目标索引”, “类型”:“目标类型” } }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多