elasticsearch 的mapping根据不同的数据格式设定属性
申明:学习探讨笔记,非结果性定义。里面很多可能是错误的,参考价值不大
elasticsearch 的mapping
订单号 如:ATTS000928732 类型不分词。 index: not_analyzed
订单号是全部数据 如: 63745345637 这样的分词是可以的。
PUT /Order_v5
{
"settings": {
//设置10个分片,理解为类似数据库中的表分区中一个个分区的概念,不知道是否妥当
"number_of_shards": 10
},
"mappings": {
"trades": {
"_id": {
"path": "id"
},
"properties": {
"id": {
"type": "integer",
//id:自增数字
//要求:查询
"store" : true
},
"name": {
//名称:佳洁士,强生婴儿沐浴露,100w Led节能灯,户外多功能折叠椅等
//要求:抓住关键字,如:佳洁士+牙膏 or 牙刷; 强生+沐浴露; led+节能+100W; 户外+折叠椅等
//结论: 如果分词,就意味着产品品牌名词可能被拆分,如 "佳洁士", 如果不分词就意味着对用户输入要求匹配度高。先默认分词,试试看看。
"type": "string"
},
"brand": { //品牌: PG,P&G,宝洁集团,宝洁股份,联想集团,联想电脑等
"type": "string"
},
"orderNo": { //订单号 :如ATTS000928732
"type": "string",
"index": "not_analyzed"
},
"description": {
//描述: 2015款玫瑰香型强生婴儿沐浴露,550ml,包邮
//搜索: 要求高亮所以设置store:true. 关键词权重:沐浴露 -> {强生+沐浴露 or 玫瑰花 + 沐浴露 or 550ml + 沐浴露 or 沐浴露 + 包邮->
{2015年 + 玫瑰香...}}
//设置:必须分词,而且要控制好
"type": "string",
"sort": true
},
"date": {
"type": "date"
},
"city": {
"type": "string"
},
"qty": { // index无效
"type": "float"
},
"price": {
//价格: float index无效
"type": "float"
}
}
}
}
}
参考:
官网 Elasticsearch.org
http://donlianli.iteye.com/blog/1975727
http://mednoter.com/ElasticSearch.html
....... 不一一列出,佩服那些笔记做好的。
定,精,简,俭