2016-10-28 57 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