在弹性搜索中默认禁用字段分析

Edm*_*984 22 elasticsearch

是否可以有选择地为类型启用弹性搜索字段的索引?

通过特定索引的映射设置,可以设置属性

{"index":"not_analyzed"}

对于特定领域.由于我的文档包含太多字段,并且将来可能会更改结构,因此我需要一个映射,默认情况下不对字段进行分析,除非另有说明.

这可能吗?

Oll*_*ank 32

是的 - 看看动态模板

请尝试以下方法:

PUT /my_index
{
  "mappings": {
    "my_type": {
        "dynamic_templates": [
            { "notanalyzed": {
                  "match":              "*", 
                  "match_mapping_type": "string",
                  "mapping": {
                      "type":        "string",
                      "index":       "not_analyzed"
                  }
               }
            }
          ]
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

动态模板适用于您的映射未涵盖的新字段 - 来自文档:

使用dynamic_templates,您可以完全控制为新检测到的字段生成的映射.

您还可以根据字段名称(例如,使用"match": "*_data")更改映射,以便为以"_data"结尾的字段名称设置不同的映射集.

  • 动态模板用于映射未覆盖的新字段 - "使用dynamic_templates,您可以完全控制为新检测到的字段生成的映射." 您还可以根据字段名称更改映射,例如,使用"match":"*_data",为以"_data"结尾的字段设置不同的映射集. (3认同)