2016-01-03 10 views
6

Sorun: Ben haritalama yarattık ve onun elasticsearch 1.7.1 yılında iyi çalışıyor ama istisnamapper_parsing_exception 2.1.1 sürümü

istisna bana

verecek 2.1.1'i güncelledikten sonra
response: '{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason" 
:"analyzer on field [_all] must be set when search_analyzer is set"}],"type":"ma 
pper_parsing_exception","reason":"Failed to parse mapping [movie]: analyzer on f 
ield [_all] must be set when search_analyzer is set","caused_by":{"type":"mapper 
_parsing_exception","reason":"analyzer on field [_all] must be set when search_a 
nalyzer is set"}},"status":400}', 
    toString: [Function], 
    toJSON: [Function] } 

{ 
    "settings": { 
     "number_of_shards": 1, 
     "number_of_replicas": 0, 
     "analysis": { 
      "filter": { 
       "nGram_filter": { 
        "type": "nGram", 
        "min_gram": 2, 
        "max_gram": 20, 
        "token_chars": [ 
         "letter", 
         "digit", 
         "punctuation", 
         "symbol" 
        ] 
       } 
      }, 
      "analyzer": { 
       "nGram_analyzer": { 
        "type": "custom", 
        "tokenizer": "whitespace", 
        "filter": [ 
         "lowercase", 
         "asciifolding", 
         "nGram_filter" 
        ] 
       }, 
       "whitespace_analyzer": { 
        "type": "custom", 
        "tokenizer": "whitespace", 
        "filter": [ 
         "lowercase", 
         "asciifolding" 
        ] 
       } 
      } 
     } 
    }, 
    "mappings": { 
     "movie": { 
      "_all": { 
       "index_analyzer": "nGram_analyzer", 
       "search_analyzer": "whitespace_analyzer" 
      }, 
      "properties": { 
       "movieName": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "movieYear": { 
        "type": "double" 
       }, 
       "imageUrl": { 
        "type": "string" 
       }, 
       "genre": { 
        "type": "string" 
       }, 
       "director": { 
        "type": "string" 
       }, 
       "producer": { 
        "type": "string" 
       }, 
       "cast": { 
        "type": "String" 
       }, 
       "writer": { 
        "type": "string" 
       }, 
       "synopsis": { 
        "type": "string" 
       }, 
       "rating": { 
        "type": "double" 
       }, 
       "price": { 
        "type": "double" 
       }, 
       "format": { 
        "type": "string" 
       }, 
       "offer": { 
        "type": "double" 
       }, 
       "offerString": { 
        "type": "string" 
       }, 
       "language": { 
        "type": "string" 
       } 
      } 
     } 
    } 
} 

cevap

11

Bana sorduğunuzda hata oldukça açıktır, _all için analyzer, film eşlemenizde belirtmeniz gerekir. index_analyzer ayarı Elasticsearch 2.0'da kaldırıldı.

 "_all": { 
      "analyzer": "nGram_analyzer", 
      "search_analyzer": "whitespace_analyzer" 
     }, 
+0

o zaman index_analyzer nedir? Bana –

+1

'dan bahsedebilir misiniz? 2.0'dan önce Elasticsearch'te 'index_analyzer',' search_analyzer' veya basitçe 'analyzer' ayarlanabiliyor. Sonuncusu, hem 'index_analyzer' hem de 'search_analyzer' değerini aynı değere ayarlamak için kestirilmişti. Elasticsearch 2.0'da, 'index_analyzer' artık sadece' analyzer 'olacak şekilde değiştirdiler ve ayrı bir 'search_analyzer' ayarlamıyorsanız,' analyzer 'değeri de bunun için kullanılır. –