一尘不染

ElasticSearch 6,带有动态索引映射的copy_to

elasticsearch

也许我缺少一些简单的东西,但仍然无法弄清楚以下内容:

从ES
6.x开始,该_all字段已弃用,建议使用copy_to说明(https://www.elastic.co/guide/en/elasticsearch/reference/current/copy-
to.html)。

但是,给我的印象是,您需要显式指定要复制到自定义_all字段的字段。但是,如果我使用动态映射,则我不事先知道字段,因此不能使用copy_to

我可以通过什么方式告诉ES将所有遇到的字段复制到自定义_all字段,以便可以在所有字段中进行搜索?

提前致谢!


阅读 589

收藏
2020-06-22

共1个答案

一尘不染

您可以使用动态模板。基本上创建一个索引,添加自定义catch_all字段,然后为所有字符串字段指定该特定属性。(以前没有做过,但是我相信这是现在的唯一方法。因为catch_all当您放置动态模板时该字段已经存在,所以它不会与catch_all-
匹配,这意味着catch_all不会复制到自身,而是对其进行检查自己确定)。

PUT my_index
{
  "mappings": {
    "_doc": {
      "dynamic_templates": [
        {
          "strings": {
            "match_mapping_type": "string",
            "mapping": {
              "type": "text",
              "copy_to": "catch_all"
            }
          }
        }
      ]
    }
  }
}
2020-06-22