2016-10-28 58 views
7

這種映射就與ES 2.X合作,目前已與ES 5我得到一個異常:ElasticSearch 5:MapperParserException與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" 
       } 
      } 
     } 
    } 
} 

}

唯一的例外是:

無在字段[名稱]上聲明的類型爲[multi_field]的處理程序

有人想法嗎?謝謝! ;)

回答

11

multi-field已在ES 1.x中棄用,並在ES 5.x中完全刪除。

現在多場通過使用fields您可以指定這樣的支持:

{ 
    "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

是的,這需要改變,也很好的抓住。 – Val

+0

你如何插入文件到這個?喜歡這個? PUT索引/類型1/1 { 「名」:{ 「自動完成」:「何塞·塞巴斯蒂安」 }} –

+0

@sheldon_cooper你應該問另外一個問題,因爲它看起來並不像它的相關。 – Val