1

Я настроил мой глобальный пользовательский анализатор в elasticsearch.yml, вот моя конфигурация:ElasticSearch не смог найти анализатор?

index : 
analysis : 
    analyzer : 
     titleAnalyzer : 
      type : custom 
      tokenizer : ik_max_word 
      filter : [titleSynoymFilter, englishStemmerFilter] 
    filter : 
     titleSynoymFilter : 
      type : synonym 
      synonyms_path : ../analysis/title_synonym.txt 
     englishStemmerFilter : 
      type : stemmer 
      name : english 

я проверить мой анализатор, выполнив команду $ echo 'A drop in the ocean'| http :5600/_analyze?analyzer=titleAnalyzer

но elasticsearch сказал мне, что не удалось найти анализатор:

{ 
"error": { 
    "reason": "failed to find analyzer [titleAnalyzer]", 
    "root_cause": [ 
     { 
      "reason": "[elastisearch][127.0.0.1:9300][indices:admin/analyze[s]]", 
      "type": "remote_transport_exception" 
     } 
    ], 
    "type": "illegal_argument_exception" 
}, 
"status": 400 
} 
+0

Что вы получаете при запуске 'curl -XGET localhost: 9200/your_index'? Также кажется, что вы не указали определение токенизатора выше, можете ли вы его добавить? – Val

+0

Я пробовал вашу конфигурацию выше на ES 2.3.2 (после исправления некоторых опечаток), и он отлично работает для меня и дает ожидаемые токены. – Val

ответ

7

Если вы звоните /_analyze на корневом пути анализатор не найден, попробуйте указать по крайней мере один существующий индекс на пути

$ echo 'A drop in the ocean'| http :5600/some_index/_analyze?analyzer=titleAnalyzer 
              ^
               | 
             add an index here 
+0

Очень спасибо за помощь, наконец, я решил, однако, я не понимаю, почему нужен индекс? –

Смежные вопросы