【自学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:索引(映射)创建相关推荐

  1. swift java_swift语法和java的比较

    1. 定义常量和变量 a. Swift语法 常量: let MaxNumber = 10 变量: var name = 1 b. Java语法 常量: public final int MaxNumb ...

  2. 【Java知识点整理】MarkDown语法和Java历史

    一.养成写博客的习惯 有助于总结归纳学习的知识.锻炼文笔.训练逻辑思维能力.有助于多思考和总结 1.博客网站 常用的博客网,CSDN--专业的IT博客 2.自己搭建博客网站 需要一些费用,1000多元 ...

  3. js的语法和java相同_js的一些有别于java语法

    请原谅一个js初学者不可避免的把js和java相提并论,并兴奋地发现js很灵活很有动感啊 1.switch可用于字符串: var a = 'abc'; switch(a){ case 1:alert( ...

  4. 正则表达式基本语法和Java中的简单使用

    ​一.正则表达式语法 1.计数符(以下n和m为非负整数,且m>n) *,匹配0次或多次,即{0,}: +,匹配1次或多次,即{1,}: ?,匹配0次或1次,即{0,1}: {n},匹配n次: { ...

  5. 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 ...

  6. 零基础学编程,如何区分C语言和Java?我们到底如何怎么进行选择!

    C语言和 Java的主要区别:面向过程/面向对象.编译型/混合型.不同的应用场景.只要阅读二者的入门资料就清楚了. 时间足够的话,先学C再学Java:时间不够直接上 Java. 一个合格的程序员当然是 ...

  7. c语言和java哪个有前途_C语言和Java哪个更适合初学者?

    目前,无论是从应用范围还是流行程度来看,C语言和Java都是当下最为火热的编程语言.想要零基础入门编程的学习者在一开始的学习中都会碰到这样的难题:C语言和Java哪个更适合初学者?的确,编程语言的选择 ...

  8. Go语言和Java、python等其他语言的对比分析

    一.Go语言设计初衷 1.设计Go语言是为了解决当时Google开发遇到的问题: 大量的C++代码,同时又引入了Java和Python 成千上万的工程师 数以万计行的代码 分布式的编译系统 数百万的服 ...

  9. 【236期】ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...

最新文章

  1. Centos6.8防火墙配置
  2. Codeforces 1016F Road Projects
  3. pythonsvm图像分类_python图像处理之sift-kmeans-SVM图像分类
  4. 产生数(floyd+高精度计算)
  5. Java基础篇(01):基本数据类型,核心点整理
  6. springmvc 监听器getWriter() has already been called for this response问题
  7. 【2022最新Java面试宝典】—— Java基础知识面试题(91道含答案)
  8. MySQL索引数据结构与算法
  9. python绝对值、加法
  10. 查看windows产品密钥
  11. 编写一个Servlet,实现统计网站被访问次数的功能
  12. linux查看文件命令
  13. 熟悉RealView MDK集成开发环境(Keil uVision4)的使用
  14. [SUCTF 2019]EasySQL1
  15. 6种最常用恒流源电路的分析与比较
  16. 二、神奇的自然常数e之“自然”之力
  17. 亲完如何进行下一步_吻过女孩后,下一步怎么办?
  18. 一到十的英文单词,一十二个月份的英文单词,四季的英文单词,第一,第二第三的英文单词...
  19. 直播节目信息流对观众感知质量的影响
  20. 编写程序,输入一个3位整数,反转后输出。

热门文章

  1. python写数据库中间件_pythonpostgresql数据库中间件有
  2. c++中const的作用
  3. SpringBoot整合kaptcha(谷歌验证码工具)实现验证码功能
  4. mysql启动不了显示错误5_mysql启动错误5怎么解决
  5. R语言绘制Donut chart
  6. R可视化:甜圈圈donut图展示比例
  7. 【踩坑日记】springboot项目启动报错error create bean with name
  8. Educoder JavaScript学习手册四:JS对象
  9. 在虚拟机上搭建xss平台
  10. jstree点击加载