版本:elasticsearch 6.7.0

maven包:

<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-elasticsearch</artifactId>
</dependency>
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>6.7.0</version>
</dependency>

  

@Document 注解:

public @interface Document {String indexName(); //索引库的名称,个人建议以项目的名称命名String type() default ""; //类型,个人建议以实体的名称命名short shards() default 5; //默认分区数short replicas() default 1; //每个分区默认的备份数String refreshInterval() default "1s"; //刷新间隔String indexStoreType() default "fs"; //索引文件存储类型
}

@Field注解:

public @interface Field {FieldType type() default FieldType.Auto; //自动检测属性的类型,可以根据实际情况自己设置FieldIndex index() default FieldIndex.analyzed; //默认情况下分词,一般默认分词就好,除非这个字段你确定查询时不会用到DateFormat format() default DateFormat.none; //时间类型的格式化String pattern() default ""; boolean store() default false; //默认情况下不存储原文String searchAnalyzer() default ""; //指定字段搜索时使用的分词器String indexAnalyzer() default ""; //指定字段建立索引时指定的分词器String[] ignoreFields() default {}; //如果某个字段需要被忽略boolean includeInParent() default false;
}

FieldType类型:

public enum FieldType {Text,  Integer,Long,Date,Float,Double,Boolean,Object,Auto,Nested,Ip,Attachment,Keyword
}

Text类型:索引全文字段,如电子邮件正文的描述或者产品描述。这些字段被分析器将字符串转换为单个术语列表。分析过程允许es在每个的全文域中搜索单个单词。文本字段不用于排序,也很少用于聚合Object类型:Json文档本质上是分层的,文档可能包含内部对象,而这些对象又可能包含内部对象本身。
{ "region": "US","manager": { "age":     30,"name": { "first": "John","last":  "Smith"}}
}

  

Nested类型:嵌套类型是对象数据类型的一个专门的版本,他允许对象数组以一种彼此独立查询的方式进行索引

PUT my_index
{"mappings": {"_doc": {"properties": {"user": {"type": "nested" }}}}
}PUT my_index/_doc/1
{"group" : "fans","user" : [{"first" : "John","last" :  "Smith"},{"first" : "Alice","last" :  "White"}]
}GET my_index/_search
{"query": {"nested": {"path": "user","query": {"bool": {"must": [{ "match": { "user.first": "Alice" }},{ "match": { "user.last":  "Smith" }} ]}}}}
}GET my_index/_search
{"query": {"nested": {"path": "user","query": {"bool": {"must": [{ "match": { "user.first": "Alice" }},{ "match": { "user.last":  "White" }} ]}},"inner_hits": { "highlight": {"fields": {"user.first": {}}}}}}
}

  Ip类型:ip字段可以索引和存储IPV4和IPv6地址

PUT my_index
{"mappings": {"_doc": {"properties": {"ip_addr": {"type": "ip"}}}}
}PUT my_index/_doc/1
{"ip_addr": "192.168.1.1"
}GET my_index/_search
{"query": {"term": {"ip_addr": "192.168.0.0/16"}}
}

Keyword类型:用于索引结构化内容(如电子邮件地址,主机名,状态码,邮政编码等)的字段。他们通常用于过滤、排序、聚合。关键字字段只能根据期确切的值进行搜索,



分析过程允许Elasticsearch在每个全文域中搜索单个单词。文本字段不用于排序,也很少用于聚合(

转载于:https://www.cnblogs.com/durenniu/p/11404247.html

spring-data-elasticsearch (elasticsearch 6.7.0) @Document 和 @Field 注解详解相关推荐

  1. Elasticsearch中字段类型(Field Type)详解

    ElasticSearch 7.7 字段类型(Field datatype)详解 字符串, object, 数值, 日期, 数组, 0x00 字符串: text, keyword 5.0以后,stri ...

  2. Spring data JPA 之 Jackson 在实体里面的注解详解

    8 Spring data JPA 之 Jackson 在实体里面的注解详解 经过前⾯课时的讲解,相信你已经对实体⾥⾯的 JPA 注解有了⼀定的了解,但是实际⼯作中你会发现实体⾥⾯不仅有 JPA 的注 ...

  3. java前端长连接框架_Java中Spring Boot+Socket实现与html页面的长连接实例详解

    Spring Boot+Socket实现与html页面的长连接,客户端给服务器端发消息,服务器给客户端轮询发送消息,附案例源码 功能介绍 客户端给所有在线用户发送消息客户端给指定在线用户发送消息服务器 ...

  4. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  5. Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

    Spring MVC 学习总结(二)--控制器定义与@RequestMapping详解 目录 一.控制器定义 1.1.实现接口Controller定义控制器 1.2.使用注解@Controller定义 ...

  6. mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解

    1.下载 下载链接 点击download,这里可能需要登录甲骨文的账号,登录一下即可 2.解压 下载好会得到一个安装包 把它解压到一个能找到的目录下即可,我的是这样(my.ini文件你们应该没有) 3 ...

  7. Spring零配置之@Configuration注解详解

    转载自 Spring零配置之@Configuration注解详解 @Configuration介绍 Spring3.0之前要使用Spring必须要有一个xml配置文件,这也是Spring的核心文件,而 ...

  8. Spring Boot注解详解

    文章目录 使用注解的优势 注解详解(配备了完善的释义) 注解列表如下 JPA注解 springMVC相关注解 全局异常处理 项目中具体配置解析和使用环境 使用注解的优势 采用纯java代码,不在需要配 ...

  9. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

  10. Linux Kernel 6.0 CXL Core pci.c 详解

    文章目录 前言 相关链接 Ref 正文 前言 CXL 是一个比较新的技术,所以我研究的内核源码是选了当前比较新的内核版本 linux 6.0.打算将内核关于 CXL 的驱动进行解析一遍,一步一步慢慢来 ...

最新文章

  1. 简单截屏恶搞程序(客户端+服务端)
  2. Windows PE导出表编程4(重构导出表实现私有函数导出)
  3. 伪元素改变date类型input框的默认样式实例页面
  4. Hadoop的启动和停止说明
  5. React-引领未来的用户界面开发框架-读书笔记(四)
  6. 中发生数据丢失_如何防止Redis脑裂导致数据丢失?
  7. python机器学习算法.mobi_机器学习之ID3算法详解及python代码实现
  8. C语言描述栈的实现及操作(数组实现)
  9. 怎么用计算机搜索文件,Win7系统如何使用内置搜索功能筛选文件名与内容
  10. 忍不住跟着吐槽 —“当你辛辛苦苦写的博客文章被无情复制,成为了他的原创,你作何感想?”...
  11. java课程设计学生信息管理_JAVA课程设计---学生基本信息管理系统
  12. 跟我一起写Makefile:隐含规则
  13. Vim快捷键(四):Vim查找与替换
  14. 计算机蓝屏代码0x0000007A,电脑开机蓝屏代码0x0000007a怎么办
  15. 北斗卫星导航系统基础篇之(一)
  16. apk 反编译工具及使用
  17. hdu2586【How far away ?】
  18. cocoscreator修改图标
  19. Java程序员都是青春饭吗?
  20. 破物联网大数据难题,百度天工物联网平台上线时序数据库服务

热门文章

  1. 创建类模式(零):简单/静态工厂(Static Factory)
  2. Ceph源码解析:PG peering
  3. shell ftp上传下载文件
  4. Windows 8 下使用 ScrollViewer 替代 GridView
  5. C#串口数据读写——计数器数据获取重置功能记录
  6. js去掉所有html标记
  7. jQuery设置iframe的高度
  8. signal(SIGPIPE,SIG_IGN)与signal(SIGCHLD,SIG_IGN)
  9. cordova打开外部链接_企业网盘的分享链接功能 这种的你一定没见过
  10. 数据库建模工具powerdisgner16.5