弹性搜索集群级别分析器

时间:2016-05-24 11:55:13

标签: elasticsearch analyzer elasticsearch-2.0

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

我的分析器例如:

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"
        }
      }
    }
  }
}

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

感谢

1 个答案:

答案 0 :(得分:1)

没有"范围"用于分析仪。但你可以用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"处,您应该在创建索引时将应用此模板的索引名称设置为 。您可以很好地指定"*"并匹配所有索引。我认为这是你能做的最好的事情。