3.2-es 映射 通用 elasticsearch-rest 中

优质
小牛编辑
130浏览
2023-12-01

例如:

通用 elasticsearch-rest默认使用了几个简单的注解

3.2.1 Document注解

@Document 说明这个 class 是实体类,并且使用默认的 es 规则,即 indexName 名即 es 中的索引,class 字段名即 es 的字段名 @Table 注解可以配置 indexName,aliasName,type,shards,replicas,maxResult,refreshInterval和 indexStoreType 8个属性,配置 indexName属性后,直接使用提供的索引,不再根据实体类名进行转换。 配置示例如下:

@Document(indexName = "sys_test", type = "detail")
public class User implements Serializable {

将 User 实体映射到 sys_test 索引中。

3.3.2 @Field注解

@Field 注解支持 name ,keyword,store,indexAnalyzer,docValues,fields,fieldDataformat,dynamic,ignoreField,nullValue 和 12个属性。

name 配置映射的列名。

keyword 对提供的 String 类型 如果关键字设置为真,则设置默认字段 关键字,其他类型无需配置。

ignoreField 对提供的 忽略字段。

配置示例如:

@Field(keyword = true)
private String userName;

上面几个注解都涉及到映射。 @Id 注解和映射无关,它是一个特殊的标记,用于标识数据库中的主键字段。

正常情况下,一个实体类中至少需要一个标记 @Id 注解的字段,存在联合主键时可以标记多个。

如果表中没有主键,类中就可以不标记。

当类中没有存在标记 @Id 注解的字段时,你可以理解为类中的所有字段是联合主键。使用所有的 ByPrimaryKey 相关的方法时,有 where 条件的地方,会将所有列作为条件。

配置示例:

@Id
private String id;