索引模板设置

ES提供索引新文档时自动自动新增索引的能力,但是由于其动态映射的结果可能不符合预期, 因此采用设置映射模板,通过索引名匹配进行映射设置。

  • 分片设置
  1. 主分片:默认为5,直接采用
  2. 副分片:提供故障转移能力、读能力,设置成1,过大回到只写效率较低
  • 编写模板
  1. template:用于匹配index
  2. settings:由于设置索引的分片等信息
  3. mapping:用于设置映射,关于类型type,由于es6默认写_doc即可。之后不再推荐多type设置,由于es中每个索引内部相同名称字段其类型是一样的,因此如果有多个type,对于使用者来说,往往容易将不同type中的相同字段设置成不同的问题。
  4. doc_values:代表是否用于聚合,会生成doc_values数据,用于聚合。es的倒排索引用于指导关键词匹配到文档,而doc_value相当于反向的倒排索引,用于高效的将文档按照设定字段进行聚合。
  • 索引模板设置
PUT _template/template1
{"template": "repeater_replay_*","settings": {"index.number_of_shards": 5,"number_of_replicas": 1},"mappings": {"_doc": {"properties": {"record_id": {   "type": "keyword"      },"task_id": {   "type": "keyword"      },"task_run_id": {"type": "keyword", "doc_values": true},"app_id": {"type": "keyword"},"app_name": {"type": "keyword"},"environment": {"type": "keyword"},"host": {"type": "keyword"},"trace_id": {"type": "keyword"},"status": {"type": "byte"},"cost": {"type": "long"},"diff_result": {"type": "text", "index": false},"response": {"type": "text", "index": false},"mock_invocation": {"type": "text", "index": false}}}}
}

客户端

选择

根据官网建议使用Rest High Level的client。为了防止被springboot父工程的项目覆盖,故采用重复依赖来解决。在选择client版本时需要注意,Rest High Level的版本需要和es服务器版本对应,至少大版本是要对应的。

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>6.3.2</version>
</dependency>
<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>6.3.2</version>
</dependency>
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>6.3.2</version>
</dependency>

使用

  • 初始化
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(httpHosts));
  • 索引(新增数据)
IndexRequest request = new IndexRequest(realIndex, type).source(docSource, XContentType.JSON).timeout("1s").opType("index");
client.index(request);
  • 搜索
SearchRequest searchRequest = new SearchRequest("index-*").preference("_local");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().query(QueryBuilders.constantScoreQuery(QueryBuilders.termQuery("price", 20)));
searchRequest.source(sourceBuilder);
client.search(searchRequest);

这种属于精确查询,请求体如下:

{"query" : {"constant_score" : { "filter" : {"term" : { "price" : 20}}}}
}
  • 其他
    还有聚合、删除等操作,都是比较类似的,详细参考接口文档

总结

已经学会设置索引模板设置,客户端也学会了如何编写,在后续使用过程中,如果有别的新的,再继续总结。

在java应用中使用es简单介绍-1相关推荐

  1. django中使用celery简单介绍

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 本章节我们重点在于实现,如何存储任务的结果. 我们将任务函数改为: from celery_demo.celery im ...

  2. java编译时注解_简单介绍 Java 中的编译时注解

    1. 前言 上一篇 主要介绍了什么是 注解 (Annotation) 以及如何读取 运行时注解 中的数据, 同时用注解实现了简单的 ORM 功能. 这次介绍另一部分: 如何读取 编译时注解 ( Ret ...

  3. Java中的GC简单介绍

    文章目录 一.GC是什么? 二.为什么要GC? 三.怎么GC? 一.GC是什么? GC英文全称为Garbage Collection,即垃圾回收. Java中的GC就是对内存的GC. Java的内存管 ...

  4. java中的List简单介绍

    List是Java中比较常用的集合类,关于List接口有很多实现类,本文就来简单介绍下其中几个重点的实现ArrayList.LinkedList和Vector之间的关系和区别. List 是一个接口, ...

  5. java标识符_Java标识符的简单介绍

    各位小伙伴大家好,这次小编要介绍一下Java的标识符,那么,问题来了,什么是标识符呢?下面,小编来给大家解答吧,java标识符就是在java程序中给变量,类,方法等命名的符号.(关于类和方法一时半会说 ...

  6. WCF中绑定的简单介绍

    绑定基本概念 绑定就是一个从通用基础类型派生出来的运行时类型.绑定中描述了传输协议,消息编码格式和其他的一些用于通信的通信协议. 绑定的种类介绍 类型名 配置文件使用名 描述 BasicHttpBin ...

  7. java 应用分模块_在Java 11中创建一个简单的模块化应用教程

    模块化编程使人们能够将代码组织成独立的,有凝聚力的模块,这些模块可以组合在一起以实现所需的功能. 本文摘自Nick Samoylov和Mohamed Sanaulla撰写的一本名为Java 11 Co ...

  8. chrome浏览器中F12的简单介绍

    Chrome开发者工具中主要使用的四个功能页面: 元素(Elements).控制台(Console).源代码(Sources).网络(Network) 1.元素(Elements) 用于查看或修改HT ...

  9. Java中UUID的简单介绍

    一.什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码. UUID是由一组32位数的16进制数字所构成,UUID的标准型式包含32个16进制数 ...

最新文章

  1. net通过oledb 和ibm自带连接方式,连接db2数据库出错
  2. 清华大学第四届大数据开放日(Big Data Day)
  3. sharepoint 2007 网站操作 显示菜单不全
  4. 1.MVC的工作流程
  5. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task4模型建立
  6. 我的docker随笔4:docker常用命令
  7. 森林怎么训练野人_138年前抓的“野人女孩”,最终命运如何?死前心愿让人心酸...
  8. 你真的会发朋友圈吗?
  9. Gulp学习笔记(黑马教程)
  10. rc.local文件开机不执行
  11. 第十一章 Mock.js 数据生成器
  12. bootbox.js官方文档中文版
  13. gif透明背景动画_如何利用premiere制作GIF动态图片
  14. android 判断 飞行模式,Android 判断飞行模式的状态
  15. 搜索引擎类网站调查报告
  16. Hadoop-HDFS总结(五)
  17. uniapp上下滑屏切换支持视频和图片轮播实现,类似抖音效果
  18. 评《中国赛映射出巨大市场潜力 姚明希望CBA赶超NBA》
  19. MySQL学生表、老师表、课程表和成绩表查询语句,全部亲测
  20. Prism 模板包,快捷创建Prism程序

热门文章

  1. ASPxGridView 用法整理
  2. three.js使用CubeCamera创建反光效果,动态环境贴图实现,立方体全景贴图(vue中使用three.js83)
  3. 维度模型数据仓库(十五) —— 多重星型模式
  4. 学习Linux第四天(文本编辑器)
  5. 注册机 逆向 注册码
  6. 2023年全国最新二级建造师精选真题及答案48
  7. linkbutton用作超链接
  8. WPF基础-XAML
  9. Unity对XML文件加密
  10. 采用VNC Viewer方式远程连接树莓派