当前位置: 首页 > article >正文

Spring Data访问Elasticsearch----Elasticsearch对象映射

Spring Data访问Elasticsearch----Elasticsearch对象映射

  • 一、元模型(Meta Model)对象映射
    • 1.1 映射注解概述
      • 1.1.1 控制向Elasticsearch写入和从其读取哪些属性
      • 1.1.2 日期格式映射
      • 1.1.3 Range类型
      • 1.1.4 映射的字段名
      • 1.1.5 Non-field-backed属性
      • 1.1.6 其他属性注解
    • 1.2 映射规则
      • 1.2.1 类型提示Type Hints
      • 1.2.2 地理空间类
      • 1.2.3 GeoJson类型
      • 1.2.4 集合
      • 1.2.5 Maps
    • 1.3 自定义转换

Spring Data Elasticsearch Object Mapping是将Java对象(域实体)映射到存储在Elasticsearch中的JSON表示并返回的过程。内部用于此映射的类是MappingElasticsearchConverter。

一、元模型(Meta Model)对象映射

基于元模型的方法使用域类型信息来读写Elasticsearch。这允许为特定的域类型映射注册Converter实例。

1.1 映射注解概述

MappingElasticsearchConverter使用元数据来驱动对象到文档的映射。元数据取自可以进行注解的实体属性。
以下注解可用:

  • @Document:应用于类级别,表示该类是映射到数据库的候选类。最重要的属性是(查看API文档以获取完整的属性列表):
    • indexName:存储此实体的索引的名称。它可以包含一个SpEL模板表达式,如"log-#{T(java.time.LocalDate).now().toString()}"
    • createIndex:标志是否在存储库引导时创建索引。默认值为true。请参见使用相应映射自动创建索引
  • @Id:应用于字段级别,用于标记字段,用于标识目的。
  • @Transient、@ReadOnlyProperty、@WriteOnlyProperty:有关详细信息,请参阅以下1.1.1控制向Elasticsearch写入和从其读取哪些属性一节。
  • @PersistenceConstructor:标记给定的构造函数,甚至是受包保护的构造函数,以便在从数据库实例化对象时使用。构造函数参数按名称映射到检索到的文档中的键值。
  • @Field:应用于字段级别并定义字段的属性,大多数属性映射到各自的Elasticsearch Mapping定义(以下列表不完整,请查看注解Javadoc以获取完整参考):
    • name:字段的名称,因为它将在Elasticsearch文档中表示,如果未设置,则使用Java字段名称。
    • type:字段类型,可以是Text、Keyword、Long、Integer、Short、Byte、Double、Float、Half_Float、Scaled_Foat、Date、Date_Nanos、Boolean、Binary、Integer_Range、Float_Range、Long_Range、Double_Range,Date_Range和Ip_Range中的一个、Object、Nested、Ip、TokenCount、Percolator、Flattened、Search_As_You_type。请参阅Elasticsearch映射类型。如果未指定字段类型,则默认为FieldType。汽车这意味着,没有为该属性编写映射条目,并且当存储该属性的第一个数据时,Elasticsearch将动态添加映射条目(请查看Elasticsearch文档中的动态映射规则)。
    • format:一个或多个内置日期格式,请参阅下一节“日期格式映射”。
    • pattern:一个或多个自定义日期格式,请参阅下一节“日期格式映射”。
    • store:标记原始字段值是否应存储在Elasticsearch中,默认值为false。
    • analyzer,searchAnalyzer,用于指定自定义分析器和规范化器的规范化器。
  • @GeoPoint:将字段标记为geo_point数据类型。如果字段是GeoPoint类的实例,则可以省略。
  • @ValueConverter定义用于转换给定属性的类。与注册的Spring Converter不同的是,它只转换带注释的属性,而不是给定类型的每个属性。
    映射元数据基础设施是在一个独立的spring数据共享项目中定义的,该项目与技术无关。

1.1.1 控制向Elasticsearch写入和从其读取哪些属性

1.1.2 日期格式映射

1.1.3 Range类型

1.1.4 映射的字段名

1.1.5 Non-field-backed属性

1.1.6 其他属性注解

1.2 映射规则

1.2.1 类型提示Type Hints

1.2.2 地理空间类

1.2.3 GeoJson类型

1.2.4 集合

1.2.5 Maps

1.3 自定义转换


http://www.kler.cn/a/272182.html

相关文章:

  • 《重生到现代之从零开始的C++生活》—— 类和对象1
  • < OS 有关 > 阿里云:轻量应用服务器 的使用 安装 Tailscale 后DNS 出错, 修复并替换 apt 数据源
  • WPS按双字段拆分工作表到独立工作簿-Excel易用宝
  • 国产编辑器EverEdit - 列编辑模式
  • Linux:进程(三)
  • 【基于无线电的数据通信链】Link 11 仿真测试
  • Spring MVC文件上传配置
  • 【PyTorch】基础学习:一文详细介绍 torch.load() 的用法和应用
  • 鸿蒙Next 支持数据双向绑定的组件:Checkbox--Search--TextInput
  • [EFI]Lenovo Ideapad 530S-14IKB电脑 Hackintosh 黑苹果efi引导文件
  • ssh命令——安全远程连接服务
  • Mysql的行级锁
  • 【亲测可行】Mac上clion boost库的安装与使用
  • jwt以及加密完善博客系统
  • ElasticSearch:数据的魔法世界
  • 使用 300 元的显卡推理 Qwen1.5-14B
  • Qt的XML文件读取测试01
  • SQLiteC/C++接口详细介绍之sqlite3类(六)
  • 【开源鸿蒙】编译OpenHarmony轻量系统QEMU RISC-V版
  • OpenAI引领下一代AI技术,推出GPT-4 Turbo
  • rust - 一个日志缓存记录的通用实现
  • Transformer的前世今生 day02(神经网络语言模型
  • 【开源鸿蒙】模拟运行OpenHarmony轻量系统QEMU RISC-V版
  • uwsgi+nginx+django 部署学习
  • cache的58问,您能回答上几个
  • 课时67:流程控制_for循环_for基础