使用spring-boot-starter-data-elasticsearch 设置了long,为什么却变成了keyword类型
2023-02-18 16:46:03 时间
实体类定义属性
book_id
为Long
类型,但在调用spring-data-elasticsearch:2.5.14.RELEASE
中的createMapping()方法时却被转换成了
keyword`类型
查看createMapping
方法,源码可以发现最终调用最下边的重载方法
IndexOperations.createMapping();
AbstractDefaultIndexOperations.createMapping();
AbstractDefaultIndexOperations.createMapping(Class<?> clazz);
AbstractDefaultIndexOperations.buildMapping(Class<?> clazz)
//构建属性映射
MappingBuilder.buildPropertyMapping(Class<?> clazz)
// 具体的properties解析,为根对象非nested对象
MappingBuilder.mapEntity(XContentBuilder builder, @Nullable ElasticsearchPersistentEntity<?> entity, boolean isRootObject, String nestedObjectFieldName, boolean nestedOrObjectField, FieldType fieldType, @Nullable Field parentFieldAnnotation, @Nullable DynamicMapping dynamicMapping);
MappingBuilder.buildPropertyMapping(XContentBuilder builder, boolean isRootObject, ElasticsearchPersistentProperty property)
//判断是否是带有@Id注解或者是字段名是否是 id或者document ,如果满足条件这是主键字段
ElasticsearchPersistentProperty.isIdProperty()
//如果是主键字段则类型设置为keyword
MappingBuilder.applyDefaultIdFieldMapping(XContentBuilder builder, ElasticsearchPersistentProperty property)
相关文章
- Java设计模式之观察者模式
- Java设计模式之迭代器模式
- vue基本语法
- 河道采砂识别监测系统
- 项目统一异常处理设计
- Es6基本语法
- 华为交换机补丁升级详细过程_CE6856_详细过程
- ASCII码表_ASCII码对照表
- 无语,萝卜遭遇小偷加骗子,还被PUA!
- 项目统一返回结果设计
- 如何去除pycharm中警告波浪线
- Gradle与IDEA整合
- Drawio v20.2.3 开源跨平台绘图软件
- Gradle入门
- Typecho优化加速 - Gzip压缩
- Java反编译工具JAD下载和使用
- H3C交换机堆叠配置及命令详解
- Typecho文章里添加版权链接 - 纯代码
- 假期还要卷,24个免费数据集送给你
- FastStone Capture 屏幕录制截图工具