也许我缺少一些简单的东西,但仍然无法弄清楚以下内容:
从ES 6.x开始,该_all字段已弃用,建议使用copy_to说明(https://www.elastic.co/guide/en/elasticsearch/reference/current/copy- to.html)。
_all
copy_to
但是,给我的印象是,您需要显式指定要复制到自定义_all字段的字段。但是,如果我使用动态映射,则我不事先知道字段,因此不能使用copy_to?
我可以通过什么方式告诉ES将所有遇到的字段复制到自定义_all字段,以便可以在所有字段中进行搜索?
提前致谢!
您可以使用动态模板。基本上创建一个索引,添加自定义catch_all字段,然后为所有字符串字段指定该特定属性。(以前没有做过,但是我相信这是现在的唯一方法。因为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" } } } ] } } }