2015-10-13 119 views
0

我已經創建了索引的定製分析,並實施之後,當我嘗試使用analyze,看其是否工作或沒有,它返回以下錯誤ElasticsearchIllegalArgumentException[failed to find analyzer [lyzer]]"Elasticsearch無法找到分析

我所定義的分析如下

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絕望地找不到我定義的分析儀!

+0

您是否嘗試過'POST trial/_settings',即在'_settings'中帶有下劃線? – Val

+0

只是做了,拋出另一個錯誤 'InvalidTypeNameException [映射類型名稱[_settings]不能以'_']開頭;' 猜測我不能使用_,我正在使用Sense(和Marvel) – Sid

+1

因爲[你需要使用'PUT'](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html#indices-update-settings),我不好意思,我忘了在我之前提到它評論。 – Val

回答

0

嘗試了一種不同的方法,它的工作(排除設置去在身體)。這是怎麼回事。

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

感謝@Val建議put。 (post沒有工作,但每次創建索引)。此外,在這種情況下,我已經有一個索引,這就是爲什麼put工作。