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

Vya*_*lav 6 search elasticsearch elastic-stack

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

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

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

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

提前致谢!

Alk*_*ris 5

您可以使用动态模板。基本上创建一个索引,添加自定义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"
            }
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)