首页 > 解决方案 > Elasticsearch如何扩展分析器?

问题描述

给出了分析器,例如standard analyzer

假设你想修改标准分析器的标记器,你可以做类似的事情

"my_analyzer": {
  "tokenizer": "my_tokenizer",
  "char_filter": "standard_char_filter",
  "filter": "standard_filter"
}

即,将您的分析仪基于现有分析仪并对其进行定制?

标签: elasticsearch

解决方案


如果你想重新定义standard analyzer你需要定义一个自定义的,像这样:

PUT /standard_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "standard",    <-- change this
          "filter": [
            "lowercase"       
          ]
        }
      }
    }
  }
}

但是,由于standard分析器使用分standard词器,如果您将分词器更改为其他内容,它将不再是standard分析器,它将是您自定义的带有lowercase令牌过滤器的分析器。但是,您可以基于该分析器创建自定义分析器standard


推荐阅读