2016-10-28 40 views
7

To odwzorowanie hast pracował z ES 2.X, teraz z ES 5 otrzymuję wyjątek:ElasticSearch 5: MapperParserException z multi_field

{ 
"type1":{ 
    "properties":{ 
     "name":{ 
      "type":"multi_field", 
      "fields":{ 
       "name":{ 
        "type":"string", 
        "index_analyzer":"standard", 
        "index":"analyzed", 
        "store":"no", 
        "search_analyzer":"standard" 
       }, 
       "name_autocomplete":{ 
        "type":"string", 
        "index_analyzer":"autocomplete", 
        "index":"analyzed", 
        "store":"no", 
        "search_analyzer":"standard" 
       } 
      } 
     } 
    } 
} 

}

Wyjątkiem jest:

Nie handler dla typu [multi_field] zadeklarowanego na polu [name]

Ktoś to pomysł? Dzięki! ;)

Odpowiedz

11

multi-field był przestarzały w ES 1.x i całkowicie usunięty w ES 5.x.

Teraz Multi pola są obsługiwane poprzez wykorzystanie fields które można określić tak:

{ 
    "type1":{ 
    "properties":{ 
     "name":{ 
      "type":"text", 
      "analyzer":"standard", 
      "index":"analyzed", 
      "store":"no", 
      "search_analyzer":"standard" 
      "fields": { 
       "autocomplete":{ 
        "type":"text", 
        "analyzer":"autocomplete", 
        "index":"analyzed", 
        "store":"no", 
        "search_analyzer":"standard" 
       } 
      } 
     } 
    } 
    } 
} 
+0

Tak, to musi być zmienione też dobry połów. – Val

+0

Jak wstawić do tego dokumenty? Lubię to? Indeks PUT/type1/1 { "name": { "autouzupełnianie": "Jose Sebastian" } } –

+0

@sheldon_cooper powinieneś zadać kolejne pytanie, ponieważ nie wygląda to powiązane. – Val