如何在elasticsearch Nodejs客户端中进行显式映射

我在nodejs中为elasticsearch使用了Javascript客户端,但是对于我如何使用elasticsearch nodejs模块来设置文档的types似乎并不是很清楚。

我面临的问题是,我从我们的供应商的API拉一个JSON对象,并在该对象的属性之一是“排名”。 秩是一个浮点值,但无论出于何种原因,供应商将其作为string返回。 因此,当我在elasticsearch中input文档时,elasticsearch将该属性解释为一个string,我不能执行这样的查询:

curl -XGET 'http://localhost:9200/backlinks/profile/_search?pretty=true' -d ' { "query" : { "match_all" : {} } , "facets": { "range1" : { "range" : { "field" : "rank", "ranges" : [ {"from" : "5.5", "to": "7.00"} ] } } }' 

因为它返回以下exception:

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number

我知道我可以做显式映射,当我创build索引,但有没有办法使用nodejs模块做到这一点?

我在文档中找不到这个选项,而且我发现当API已经存在时,明确地发送一个GET请求到弹性search服务器有点麻烦。

另外,是显式映射recursion?

说我的供应商发给我这个:

 { name: 'wallets', price: '15.00', relatedItems: [{name: 'purses', price:'12.00'}, {name:'bags', price:'11.00'}] }; 

如果我做这样的对象显式映射:

 price: { type: 'float' } 

该types将映射到所有名为“价格”的属性? 还是只适用于第一个?

谢谢!