基于字段的动态映射elasticsearch

Fields based dynamic mapping elasticsearch

我可以使用通配符模式来确定 elasticsearch 的索引分析器吗?

例如: "properties":

{ 
    "0_*" : {"type": "string", "index_analyzer": "standard" } , 
    "1_*" : {"type": "string", "index_analyzer": "my_analyzer"}
}

所以现在如果我索引文档时有一个新字段,比如

{
    "0_title" : "some string", // should use standard analyzer
    "1_title" : "my anazlyer string" // should use my_analyzer
}

有没有办法实现这个?

是的,您只需要使用索引模板即可。 您可以找到有关动态模板的更多信息 here 使用索引模板,您可以按如下方式注入规则 -

{
  "person": {
    "dynamic_templates": [
      {
        "template_0": {
          "match": "0_*",
          "mapping": {
            "type": "string",
            "index_analyzer": "standard"
          }
        }
      },
      {
        "template_1": {
          "match": "1_*",
          "mapping": {
            "type": "string",
            "index_analyzer": "my_analyzer"
          }
        }
      }
    ]
  }
}