Elasticsearch日常开发
2020-08-12 14:51:37
每次遇到ES开发,一般都是查询es里面的数据,今天我教大家一个简单的es的查询。废话不多说,直接上代码。
在pom文件中引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
// 初始化api客户端
public RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http")
));
其中的localhost和9200需要小伙伴们自己配置,不管你是写配置文件也好,代码里面写死也可以,我目前是写死的。client就是连接es的。
public Map<String,Object> findUserName(String sex,String age) throws IOException {
RequestOptions.Builder options = RequestOptions.DEFAULT.toBuilder();
//设置连接的库名 即_index
SearchRequest searchRequest = new SearchRequest("mymayikt");
/// 搜索源构建对象
SearchSourceBuilder search = new SearchSourceBuilder();
//多条件查询
BoolQueryBuilder boolBuilder=QueryBuilders.boolQuery();
//这个地方就是多条件查询的时候,需要写的,当然也可以在外面进行一个判空处理
/*
if(sex不为空不为null){
boolBuilder.must(QueryBuilders.matchPhraseQuery("sex", sex));
}
*/
boolBuilder.must(QueryBuilders.matchPhraseQuery("sex", sex));
boolBuilder.must(QueryBuilders.matchPhraseQuery("age",age));
//如果需要分页查询则进行入参
int page = 2; // 页码
int size = 10; // 每页显示的条数
int index = (page - 1) * size;
search.from(0);
search.size(10);
//将多条件打包放入
search.query(boolBuilder);
searchRequest.source(search);
SearchResponse response = client.search(searchRequest, options.build());
SearchHits hits = response.getHits();
int i = 0;
System.out.println("共:"+hits.getTotalHits()+"数据");
List list = new ArrayList();
for (SearchHit hit :hits.getHits()) {
list.add(hit.getSourceAsMap());
System.out.println("ES "+hit.getSourceAsMap());
}
Map<String,Object> map = new HashMap<>();
map.put("totaPage",hits.getTotalHits());
map.put("list",list);
return map;
}
下面看es的服务端的数据

es的搭建与服务端的包请自行下载。我这里用的是7.3.1版本的es 。 找到 elasticsearch-7.3.1-windows-x86_64\elasticsearch-7.3.1\bin 的bin文件夹

双击 elasticsearch.bat就可以启动es服务

然后在浏览器访问 localhost:9200或者127.0.0.1:9200 看到如下的版本好就代表es启动成功。

想要操作es的服务端可以下载 elasticsearch-head-master 找到index.html文件 用浏览器打开


打开之后输入localhost:9200就可以连接成功

Elasticsearch日常开发的更多相关文章
- Elasticsearch服务器开发(第2版).pdf 含目录
Elasticsearch服务器开发(第2版) 介绍: <Elasticsearch服务器开发(第2版)>这一版针对Elasticsearch的新版本更新了内容,增加了第1版中遗漏的重要内 ...
- Go 日常开发常备第三方库和工具
不知不觉写 Go 已经快一年了,上线了大大小小好几个项目:心态也经历了几轮变化. 因为我个人大概前五年时间写的是 Java ,中途写过一年多的 Python,所以刚接触到 Go 时的感觉如下图: 既没 ...
- 日常开发使用SVN命令
现在把我日常开发中用到的svn命令总结出来,做个备忘,其实真正用到也就那几个. 如果遇到参数不知道使用或其它困难请使用:svn --help 得到帮助 1)检出: svn co svn地址 本地路径 ...
- 从日常开发说起,浅谈HTTP协议是做什么的。
引言 HTTP协议作为Web开发的基础一直被大多数人所熟知,不过相信有很多人只知其一不知其二.比如咱们经常用到的session会话机制是如何实现的,可能很多人都说不出来吧.其实session会话就是H ...
- 为什么选择 Intellij IDEA 作为日常开发工具
作为一个从事 Java 开发的程序员,每天离不开编辑器的帮助.还记得刚开始学习 Java 编程的时候,使用 Eclipse 作为日常开发工具.后来工作以后,需要使用 Intellij IDEA,刚开始 ...
- IDEA的几个常用配置,日常开发必备。
用了IDEA有很长时间了,身边的同事朋友也都慢慢的开始都从Eclipse切换到IDEA了,其实无论是Eclipse还是IntelliJ IDEA都是开发工具而已,各自都有优点.但是刚从Eclipse切 ...
- 用archlinux作为日常开发机的感受
机器配置 CPU: Intel Core i5-6200U RAM: 8G Resolution: 1920x1080 我在arch下常用的软件 图形桌面环境 i3wm wifi无线管理 Networ ...
- 日常开发中的shell小技巧
工具推荐 命令行中很方便的代码统计工具---cloc 强大的分屏工具---tmux 最舒服的markdown书写工具---typora markdown图床推荐--七牛云 模拟生成熵(避免暴力手搓键盘 ...
- 日常开发用Windows 好还是 Ubuntu好?
最近打算给电脑重新装系统,纠结了很久,不知道应该是换Windows还是Ubuntu,今天通过我自身的体验,来为大家分析一下,日常开发环境到底是用Windows和Ubuntu. [系统介绍] Windo ...
- 「日常开发」记一次因使用Date引起的线上BUG处理
生活中,我们需要掌控自己的时间,减少加班,提高效率:日常开发中,我们需要操作时间API,保证效率.安全.稳定.现在都2020年了,了解如何在JDK8及以后的版本中更好地操控时间就很有必要,尤其是一次线 ...
随机推荐
- Rust中的derive属性详解
1. Rust中的derive是什么? 在Rust语言中,derive是一个属性,它可以让编译器为一些特性提供基本的实现.这些特性仍然可以手动实现,以获得更复杂的行为. 2. derive的出现解决了 ...
- 搞懂Python正则表达式,这一篇就够了
本文代码基于Python3.11解释器,除了第一次示例,代码将省略 import re 这个语句 所有示例代码均可以在我的github仓库中的 code.py文件内查看 [我的仓库](PythonLe ...
- Python 函数传递任意数量的实参
函数传递任意数量的实参 *形参名,形参名中的星号让python创建了一个空元组,并将收到的所有值都封装到这个元组中 # 案例 *toppings 形参名中的星号让python创建了一个空元组,并将收到 ...
- Python-趣味小程序
1.效果 2.代码 import sys import time def print_act(word): #print('\n'+' '+'\r') #让光标回到行首 sys.stdout.writ ...
- FreeSWITCH对接vosk实现实时语音识别
环境:CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Python版本:3.9.2 一.背景描述 vosk是一个开源语音识别工具,可识别中文,之前介绍过python使用vosk ...
- 一文梳理z-index和层叠上下文
前言 最近参与某前端项目架构改造,发现项目中滥用z-index,设置的值有几十种并且不统一.在对项目的z-index进行梳理和统一过程中也深入学习了一下z-index,并撰写成文,希望也能帮助到陌生的 ...
- FreeSWITCH使用L16编码通信及raw数据提取
环境:CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Python版本:3.9.12 一.背景描述 PCM(Pulse Code Modulation,脉冲编码调制)音频数据是 ...
- 程序员IT行业,外行眼里高收入人群,内行人里的卷王
程序员 一词,在我眼里其实是贬义词.因为我的其他不是这行的亲朋友好友,你和他们说,你是一名程序员· 他们 第一刻板影响就是,秃头,肥胖,宅男,油腻,不修边幅 反正给人一种不干净,不好形象,,,,不知道 ...
- 2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能。
2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能. 答案2023-04-30: resampling_audio.c 是 FFmpe ...
- 2021-05-13:数组中所有数都异或起来的结果,叫做异或和。给定一个数组arr,返回arr的最大子数组异或和。
2021-05-13:数组中所有数都异或起来的结果,叫做异或和.给定一个数组arr,返回arr的最大子数组异或和. 前缀树.一个数,用二进制表示,0走左边分支,1走右边分支. 时间复杂度:O(N). ...