2015-04-16 2 views
2

Я создал анализатор синонимов по индексу:Elasticsearch «не удалось найти анализатор»

curl http://localhost:9200/test_index/_settings?pretty 
{ 
    "test_index" : { 
    "settings" : { 
     "index" : { 
     "creation_date" : "1429175067557", 
     "analyzer" : { 
      "search_synonyms" : { 
      "filter" : [ "lowercase", "search_synonym_filter" ], 
      "tokenizer" : "standard" 
      } 
     }, 
     "uuid" : "Zq6Id8xsRWGofJrNCb7M8w", 
     "number_of_replicas" : "1", 
     "analysis" : { 
      "filter" : { 
      "search_synonym_filter" : { 
       "type" : "synonym", 
       "synonyms" : [ "sneakers,pumps" ] 
      } 
      } 
     }, 
     "number_of_shards" : "5", 
     "version" : { 
      "created" : "1050099" 
     } 
     } 
    } 
    } 
} 

Но когда я пытаюсь использовать его с отображением:

curl -XPUT 'http://localhost:9200/test_index/_mapping/product_catalog?pretty' -H "Content-Type: application/json" \ 
    -d '{"product_catalog": {"properties" : {"name": {"type": "string", "include_in_all": true, "analyzer":"search_synonyms"} }}}' 

Я получаю ошибку:

{ 
    "error" : "MapperParsingException[Analyzer [search_synonyms] not found for field [name]]", 
    "status" : 400 
} 

Я также попытался просто проверить анализатор с:

curl 'http://localhost:9200/test_index/_analyze?analyzer=search_synonyms&pretty=1&text=pumps' 

, но все еще получаю ошибку:

ElasticsearchIllegalArgumentException[failed to find analyzer [search_synonyms]] 

Любые идеи, я могу что-то отсутствует, но я не могу думать, что.

ответ

7

Элемент анализатора должен находиться внутри вашего компонента анализа. Измените создателя индекса следующим образом:

{ 
    "settings": { 
     "index": { 
      "creation_date": "1429175067557", 
      "uuid": "Zq6Id8xsRWGofJrNCb7M8w", 
      "number_of_replicas": "0", 
      "analysis": { 
       "filter": { 
        "search_synonym_filter": { 
         "type": "synonym", 
         "synonyms": [ 
          "sneakers,pumps" 
         ] 
        } 
       }, 
       "analyzer": { 
        "search_synonyms": { 
         "filter": [ 
          "lowercase", 
          "search_synonym_filter" 
         ], 
         "tokenizer": "standard" 
        } 
       } 
      }, 
      "number_of_shards": "5", 
      "version": { 
       "created": "1050099" 
      } 
     } 
    } 
} 
+0

Спасибо, я не могу поверить, что пропустил это. – ejrowley