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

....... 不一一列出,佩服那些笔记做好的。



posted @ 2015-02-05 11:13  游子善心  阅读(1)  评论(0编辑  收藏  举报  来源