[ElasticSearch系列五] Spring Data Elasticsearch 实体类注解说明专攻系

Posted RG•凌晨两点的橘猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ElasticSearch系列五] Spring Data Elasticsearch 实体类注解说明专攻系相关的知识,希望对你有一定的参考价值。

前言:本章主要对spring &  elasticsearch  中创建实体类及其当中的索引注解做详细解释说明

引入前文 

我们前面spring &  elasticsearch整合用提到索引注解,当时就单列了最主要的三个注解(indexName 、type、@id)的使用,这里便对Spring Data Elasticsearch 下注解做下详细说明!! (前文如下图)

[ElasticSearch系列四] spring & elasticSearch (linux) 整合【附图解说】_萌小崔的博客-CSDN博客

 

这里对实体类索引注解划分为两个部分,便于大家更易理解原理及使用!!! 


 

1、【类上注解】@Document 注解  (标记实体类为文档对象)

 【插入】还不太懂实体类及文档对象之间关系的建议阅读之前文档,有详细解答,一看就懂!!

[ElasticSearch系列一] ElasticSearch基本概念及特性【明细】_萌小崔的博客-CSDN博客

@Document 源码分析  

案例(一般默认,可以指定,indexName、type是必要属性)


2、【成员变量上的注解】@Field  标记为文档的字段,并制定映射属性

@Field 源码分析

【插入】对指定分词器还不太了解的可以看下文,详解 [ElasticSearch系列三] Elasticsearch IK分词器 介绍、下载、安装及使用_萌小崔的博客-CSDN博客 

【 @Field(type = FieldType.Keyword)和 @Field(type = FieldType.Text)区别】

  • FieldType.Keyword存储字符串数据时,不会建立索引
  • FieldType.Text在存储字符串数据的时候,会自动建立索引,也会占用部分空间资源。

【@Field(store = true)  和 @Field(store = false) 的区别 】

  • store = false时,默认设置;那么给字段只存储在"_source"的Field域中
  • store = true时,该字段的value会存储在一个跟_source平级的独立Field域中;同时也会存储在_source中,所以有两份拷贝

案例 (主键@ID必须指定,其他可以默认)

 

 


Thanks!

以上是关于[ElasticSearch系列五] Spring Data Elasticsearch 实体类注解说明专攻系的主要内容,如果未能解决你的问题,请参考以下文章

Spring源码由浅入深系列五 GetBean

Spring系列五:Spring怎么解决循环依赖

Small Spring系列五:annotation Injection

ElasticSearch系列四 CURD

ElasticSearch_09_ES 7.x版本的两个变动

ElasticSearch_09_ES 7.x版本的两个变动