Elasticsearch 集群级别分析器

Elastic search cluster level analyzer

如何定义一个将用于多个索引(在集群级别)的自定义分析器?我能找到的所有示例都展示了如何在特定索引上创建自定义分析器。

例如我的分析仪:

PUT try_index
{
  "settings": {
    "analysis": {
      "filter": {
        "od_synonyms": {
          "type": "synonym", 
          "synonyms": [
            "dog, cat => animal",
            "john, lucas => boy",
            "emma, kate => girl"
          ]
        }
      },
      "analyzer": {
        "od_analyzer": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "od_synonyms"
          ]
        }
      }
    }
  },
  "mappings": {
    "record": {
      "properties": {
        "name": {
            "type": "string",
            "analyzer":"standard",
            "search_analyzer": "od_analyzer"
        }
      }
    }
  }
}

知道如何将我的分析器范围更改为集群级别吗?

谢谢

分析仪没有 "scope"。但是你可以用 index templates:

做类似的事情
PUT /_template/some_name_here
{
  "template": "a*",
  "order": 0,
  "settings": {
    "analysis": {
      "filter": {
        "od_synonyms": {
          "type": "synonym", 
          "synonyms": [
            "dog, cat => animal",
            "john, lucas => boy",
            "emma, kate => girl"
          ]
        }
      },
      "analyzer": {
        "od_analyzer": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "od_synonyms"
          ]
        }
      }
    }
  }
}

并且在 "template" 处,您应该在创建索引时 输入此模板应应用于的索引的名称 。您可以很好地指定 "*" 并匹配所有索引。我认为这是你能做的最好的事情了。