Elasticsearch 找不到分析器

Elasticsearch Failed to find analyzer

我为索引创建了一个自定义分析器,在实施它之后,当我尝试使用 analyze 来查看它是否工作时,它 returns 出现以下错误 ElasticsearchIllegalArgumentException[failed to find analyzer [lyzer]]"

我定义分析器如下

post trial/settings
{
  "index": {
    "analysis": {
      "tokenizer": {
        "ngrm":{
          "type": "nGram",
          "min_gram": "4",
          "max_gram": "8"
          }
      },

  "filter": {
    "myFilter": {
      "type": "word_delimiter",
      "generated_word_parts": "true",
      "generated_number_parts": "true"
    }
  },

  "analyzer": {
    "lyzer": {
      "type": "custom",
      "tokenizer": "ngrm",
      "filter": ["word_delimiter","myFilter"]
      }
    }
  }

 }
}

当我尝试验证分析仪是否正常工作时,出现以下错误

GET /trial/_analyze?analyzer=lyzer&text=some_random_text_here
{


"error": "ElasticsearchIllegalArgumentException[failed to find analyzer [lyzer]]",
   "status": 400
}

我什至尝试在那里放置映射并声明分析器,但徒劳无功!!

我还应该尝试其他什么方法? ES 拼命找不到我定义的分析器!!

尝试了一种不同的方法,它奏效了(排除了进入正文的设置)。事情是这样的。

put trial
{
  "settings" : {
            "analysis" : {
                "analyzer" : {
                    "lyzer" : {
                        "tokenizer" : "nizer"
                    }
                },
                "tokenizer" : {
                    "nizer" : {
                        "type" : "nGram",
                        "min_gram" : "4",
                        "max_gram" : "8",
                                                }
                }
            }
        }
}

感谢@Val 的建议put。 (post 确实有效,但每次都创建了索引)。此外,在这种情况下,我已经有了一个索引,这就是 put 起作用的原因。