【自学elasticsearch7】结合es语法和java的HighLevelClient:索引(映射)创建
【自学elasticsearch7】结合es语法和java的HighLevelClient:索引(映射)创建
- 写在开头
- 开箱即用的elasticsearch
- 用curl语句在es中创建第一个索引(映射)
- 用HighLevelClient创建第一个索引(映射)
写在开头
大学毕业入职半年的菜鸡第一篇博客,多次在项目中简单使用过es,es的介绍和故事等随处可见,不再赘述,官方的地址贴在这里,废话不多说,直接进入正题。
官方文档:《Elasticsearch 权威指南》中文版
注意:官方文档基于es2,本文基于es7
es创始人Shay Banon的故事点这里
开箱即用的elasticsearch
es官方下载地址
kibana官方下载地址
windows下为例(环境变量中请配置好JAVA_HOME):
下载解压后双击/bin/elasticsearch.bat即可启动es,访问地址:localhost:9200,出现以下信息为访问成功!
下载解压后双击/bin/kibana.bat即可启动kibana,访问地址:localhost:5601
注:如果需要本地kibana连接其它服务器的es,可修改/bin/config/kibana.yml的elasticsearch.hosts: [“服务器地址:9200”]
如需安装ik中文分词器可参考ik分词器安装
用curl语句在es中创建第一个索引(映射)
PUT /firstmapping
{"mappings": {"properties": {"title":{"type":"keyword"},"content":{"type": "text"},"score":{"type": "double"} }}
}
其中mapping定义该语句为一条映射语句,properties下填写索引的字段名(title,content,score),type为字段的类型(从es5开始不再支持string类型,将string类型拆分为text和keyword,其中keyword类型字段不可进行分词搜索)
es的常用类型如下:
(1)字符串:
- text 于全索引,搜索时会自动使用分词器进分词再匹配
- keyword 不分词,搜索时需要匹配完整的值
(2)数值型
- 整型: byte,short,integer,long
- 浮点型: float, half_float, scaled_float,double
(3)日期类型
- date
其它的类型可以参考这里,不再赘述:常用类型参考
用HighLevelClient创建第一个索引(映射)
导入es7的依赖:
<properties><!--声明es版本,很重要!!!!--><elasticsearch.version>7.13.0</elasticsearch.version></properties><dependencies><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.13.0</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>7.13.0</version></dependency><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.13.0</version></dependency></dependencies>
创建client配置类:
@Configuration
public class Client {@Value("${es.url}") //可在配置文件中添加添加多个es地址,配置es集群private String esUrl;@BeanRestHighLevelClient configRestHighLevelClient() throws Exception{String[] esUrls = esUrl.split(",");List<HttpHost> httpHosts = new ArrayList<>();for (String url : esUrls) {String[] esPort = url.split(":");httpHosts.add(new HttpHost(esPort[0],Integer.parseInt(esPort[1]),"http"));}return new RestHighLevelClient(RestClient.builder(httpHosts.toArray(new HttpHost[0])));}
}
创建映射的主要代码:
XContentBuilder builder = XContentFactory.jsonBuilder();builder.startObject();{builder.startObject("mappings");{builder.startObject("properties");{builder.startObject("title");{builder.field("type", "keyword");}builder.endObject();builder.startObject("content");{builder.field("type", "text");}builder.endObject();builder.startObject("score");{builder.field("type", "double");}builder.endObject();}builder.endObject();}builder.endObject();}builder.endObject();CreateIndexRequest index = new CreateIndexRequest("secondmapping");index.source(builder);client.indices().create(index, RequestOptions.DEFAULT);
【自学elasticsearch7】结合es语法和java的HighLevelClient:索引(映射)创建相关推荐
- swift java_swift语法和java的比较
1. 定义常量和变量 a. Swift语法 常量: let MaxNumber = 10 变量: var name = 1 b. Java语法 常量: public final int MaxNumb ...
- 【Java知识点整理】MarkDown语法和Java历史
一.养成写博客的习惯 有助于总结归纳学习的知识.锻炼文笔.训练逻辑思维能力.有助于多思考和总结 1.博客网站 常用的博客网,CSDN--专业的IT博客 2.自己搭建博客网站 需要一些费用,1000多元 ...
- js的语法和java相同_js的一些有别于java语法
请原谅一个js初学者不可避免的把js和java相提并论,并兴奋地发现js很灵活很有动感啊 1.switch可用于字符串: var a = 'abc'; switch(a){ case 1:alert( ...
- 正则表达式基本语法和Java中的简单使用
一.正则表达式语法 1.计数符(以下n和m为非负整数,且m>n) *,匹配0次或多次,即{0,}: +,匹配1次或多次,即{1,}: ?,匹配0次或1次,即{0,1}: {n},匹配n次: { ...
- ES安装启动及could not find java in bundled jdk at /opt/elasticsearch/elasticsearch-7.9.1/jdk/bin/java报错
1.首先去es的官网下载ES 然后将下载后的包上传到linux环境指定的目录下面 进行解压 解压命令为:sudo tar -zxvf elasticsearch-7.9.1-linux-aarch64 ...
- 零基础学编程,如何区分C语言和Java?我们到底如何怎么进行选择!
C语言和 Java的主要区别:面向过程/面向对象.编译型/混合型.不同的应用场景.只要阅读二者的入门资料就清楚了. 时间足够的话,先学C再学Java:时间不够直接上 Java. 一个合格的程序员当然是 ...
- c语言和java哪个有前途_C语言和Java哪个更适合初学者?
目前,无论是从应用范围还是流行程度来看,C语言和Java都是当下最为火热的编程语言.想要零基础入门编程的学习者在一开始的学习中都会碰到这样的难题:C语言和Java哪个更适合初学者?的确,编程语言的选择 ...
- Go语言和Java、python等其他语言的对比分析
一.Go语言设计初衷 1.设计Go语言是为了解决当时Google开发遇到的问题: 大量的C++代码,同时又引入了Java和Python 成千上万的工程师 数以万计行的代码 分布式的编译系统 数百万的服 ...
- 【236期】ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...
最新文章
- Axure8.0 网页 or App 鼠标滚动效果
- ruby require的使用
- 新版Bintray-极简上传Library到JCenter
- 深入理解分布式技术 - Redis 分布式锁解决方案
- 阿德:工作与发财之间的秘密
- docker保存日志文件到本地
- 记录——《C Primer Plus (第五版)》第十一章编程练习第三题
- jssip中文开发文档(完整版)
- easyui 获取cloumns字段
- [2018.09.12 T1] 下落的圆盘
- 图新地球点云大师:点云数据三维可视化管理及等高线提取
- 计算机网络基础实验(Cisco Packet Tracer 实验)
- pcm设备的注册流程
- layui数据表格实现快捷键切换编辑单元格
- 蓝牙耳机哪款好?2021无线蓝牙耳机测评
- 基于QT的网络嗅探器实现(网络安全课程设计)
- matlab二元多项式求值,matlab多项式代入求值
- 计算机房间的英语,酒店客房状态常用英语
- vim autoformat php,Vim 之 vim-autoformat 自动切换使用本地或全局eslint
- 一个知识付费商城系统2022年最新改良版源码