elasticsearch5.4.0 java开发记录二
来源:互联网 发布:dc元数据 编辑:程序博客网 时间:2024/06/05 00:30
接着我们进行mapping设置
在代码之前我讲下在项目中用到的类型及为什么这样用
long,keyword ,text ,double ,date
使用数字类型long用来存储商品id,keyword 用来存储字符类型,主要用于精确值查询,不用分词效果的字段
text 字符类型 该字段需要分词,double类型主要用于价格的存储,date 类型用于时间的存储。
elasticsearch java 代码如下:
private String getMapping(String indexName) {try {XContentBuilder builder = XContentFactory.jsonBuilder();builder.startObject().startObject("properties")// 数字类型 商品ID.startObject("productId").field("type", "long").field("index", false).endObject()// 精确查询 .startObject("productSn").field("type", "keyword").endObject()// 分词 商品名称.startObject("productName").field("type", "text").field("analyzer", "ik_max_word").field("search_analyzer", "ik_max_word").endObject()// 价格 double类型.startObject("showPrice").field("type", "double").endObject()// 活动价.startObject("activityPrice").field("type", "double").field("index", false).endObject()// 含税成本价.startObject("taxIncludedPrice").field("type", "double").field("index", false).field("store", false).endObject()// 不含税成本价.startObject("taxFreePrice").field("type", "double").field("index", false).field("store", false).endObject()// 商品创建时间createTime.startObject("createTime").field("type", "date").field("format", "yyyy-MM-dd HH:mm:ss").field("store", false).endObject()// brandEnName.startObject("brandEnName").field("type", "keyword").field("store", false).endObject()// brandChName.startObject("brandChName").field("type", "text").field("analyzer", "ik_max_word").field("search_analyzer", "ik_max_word").endObject()// 编码 精确匹配.startObject("brandCode").field("type", "keyword").endObject().startObject("brandCodeAndName").field("type", "keyword").endObject()// 尺码 itemSize.startObject("itemSize").field("type", "keyword").field("index", false).endObject()// 库存 stock.startObject("stock").field("type", "long").field("index", false).endObject()// 佣金率 commissionRate.startObject("commissionRate").field("type", "double").field("index", false).endObject()// vendorCode.startObject("vendorCode").field("type", "keyword").endObject()// vendorName.startObject("vendorName").field("type", "keyword").endObject().startObject("vendorCodeName").field("type", "keyword").endObject()// vendorGroup.startObject("vendorGroup").field("type", "keyword").endObject()// spaceFlag.startObject("spaceFlag").field("type", "keyword").endObject()// onsaleState.startObject("onsaleState").field("type", "long").endObject()// onsaleTime.startObject("onsaleTime").field("type", "date").field("format", "yyyy-MM-dd HH:mm:ss").endObject()// 关键字.startObject("productKeywords").field("type", "text").field("analyzer", "ik_max_word").field("search_analyzer", "ik_max_word").endObject()// oneClassCode.startObject("oneClassCode").field("type", "keyword").endObject()// oneClassName.startObject("oneClassName").field("type", "keyword").endObject().startObject("classOneCodeName").field("type", "keyword").endObject()// twoClassCode.startObject("twoClassCode").field("type", "keyword").endObject()// twoClassName.startObject("twoClassName").field("type", "keyword").endObject().startObject("classTwoCodeName").field("type", "keyword").endObject()// threeClassCode.startObject("threeClassCode").field("type", "keyword").endObject()// threeClassName.startObject("threeClassName").field("type", "keyword").endObject().startObject("classThreeCodeName").field("type", "keyword").endObject()// fourClassCode.startObject("fourClassCode").field("type", "keyword").endObject()// fourClassName.startObject("fourClassName").field("type", "keyword").endObject().startObject("classFourCodeName").field("type", "keyword").endObject()// imgUrl.startObject("imgUrl").field("type", "keyword").endObject()// sevendaysSaleAmount.startObject("sevendaysSaleAmount").field("type", "double").endObject()// sevendaysSaleNumber.startObject("sevendaysSaleNumber").field("type", "long").endObject()// fifteendaysSaleAmount.startObject("fifteendaysSaleAmount").field("type", "double").endObject()// fifteendaysSaleNumber.startObject("fifteendaysSaleNumber").field("type", "long").endObject()// thirtydaysSaleAmount.startObject("thirtydaysSaleAmount").field("type", "double").endObject()// thirtydaysSaleNumber.startObject("thirtydaysSaleNumber").field("type", "long").endObject()// sixtydaysSaleAmount.startObject("sixtydaysSaleAmount").field("type", "double").endObject()// sixtydaysSaleNumber.startObject("sixtydaysSaleNumber").field("type", "long").endObject()// ninetydaysSaleAmount.startObject("ninetydaysSaleAmount").field("type", "double").endObject()// ninetydaysSaleNumber.startObject("ninetydaysSaleNumber").field("type", "long").endObject()// loadDate.startObject("loadDate") .field("type", "date").field("format", "yyyy-MM-dd HH:mm:ss") .endObject().endObject().endObject();LOGGER.warn("创建索引【{}】的mapping success:【{}】", indexName,builder.string());return builder.string();} catch (IOException e) {LOGGER.warn("创建索引【{}】的mapping fail:【{}】", indexName, e);e.printStackTrace();}return null;}该方法得到是json格式的字符串,其中代码一看就明白,后面还会添加拼音搜索 mapping怎么设置
第二部分到此就结束了,如上有错误之处,不足之处望之处,多谢。
阅读全文
0 0
- elasticsearch5.4.0 java开发记录二
- elasticsearch5.4.0 java开发记录一
- elasticsearch5.4.0 java开发记录三
- elasticsearch5.4.0 java开发记录四
- elasticsearch5.4.0 java开发注意事项
- elasticsearch5.4.0 查询记录
- solr项目中添加elasticsearch5.4.0记录
- elasticsearch5.4.0 kibana小问题记录
- ElasticSearch5.3插件开发(二)获取集群健康信息
- ElasticSearch5.0使用记录
- 【JAVA大作业开发记录(二)】
- Elasticsearch5.4集群(二)java API升级
- ElasticSearch5.x踩坑记录(二):linux下es5.6.3、head、ik安装
- elasticsearch5.1.2安装过程记录
- AM1808 开发记录(二)
- DM8148开发记录 二
- 项目开发记录二
- elasticsearch5.2.2 插件开发(二) 第一个有实际功能的插件
- Spring-Boot整合freemarker引入静态资源css、js等
- IOS移动端1px解决方案
- 7-7 使用原子 和 子表存储的广义表,<求广义表的长度
- Android Binder之应用层总结与分析
- Eclipse新建Spring Boot项目
- elasticsearch5.4.0 java开发记录二
- 使用Spring Security进行自动登录验证
- 倒三角问题
- springMVC中前台封装的数据无法传到后台的解决
- 代理模式vs适配器模式vs外观模式
- Mybaits框架
- 我只像拿个C币而已
- 实验一报告
- python中基于descriptor的一些概念(上)