java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
1、前缀查询(prefix)
//prefix前缀查询 @Testpublic void test15() throws UnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端TransportClient client = new PreBuiltTransportClient(settings)//获取es主机中节点的ip地址及端口号(以下是单个节点案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//prefixQuery 第一个参数为字段名,后面是以zhao开头的条件进行查询QueryBuilder builder = QueryBuilders.prefixQuery("name", "zhao");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//将获取的值转换成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key对应的值为:" +map.get(key));}}}
2、wildcard模糊查询
//wildcard模糊查询 @Testpublic void test16() throws UnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端TransportClient client = new PreBuiltTransportClient(settings)//获取es主机中节点的ip地址及端口号(以下是单个节点案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//wildcardQuery模糊查询QueryBuilder builder = QueryBuilders.wildcardQuery("name", "zhao*");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//将获取的值转换成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key对应的值为:" +map.get(key));}} }
3、fuzzy模糊查询
说明:fuzzy才是实现真正的模糊查询,我们输入的字符可以是个大概,他可以根据我们输入的文字大概进行匹配查询,具体可看文章中的解释和代码,注意与wildcard模糊查询的区别
//fuzzy模糊查询(输入的值输入个大概也可以查询出来) @Testpublic void test17() throws UnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端TransportClient client = new PreBuiltTransportClient(settings)//获取es主机中节点的ip地址及端口号(以下是单个节点案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//fuzzyQuery模糊查询QueryBuilder builder = QueryBuilders.fuzzyQuery("name", "chagge");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//将获取的值转换成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key对应的值为:" +map.get(key));}}} //typeQuery类型查询 @Testpublic void test18() throws UnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端TransportClient client = new PreBuiltTransportClient(settings)//获取es主机中节点的ip地址及端口号(以下是单个节点案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//typeQuery类型查询QueryBuilder builder = QueryBuilders.typeQuery("blog");SearchResponse response = client.prepareSearch("index1").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//将获取的值转换成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key对应的值为:" +map.get(key));}}}
4、ids查询
说明:根据多个id值进行查询
//idsQuery id查询(可以同时根据多个id进行查询) @Testpublic void test19() throws UnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端TransportClient client = new PreBuiltTransportClient(settings)//获取es主机中节点的ip地址及端口号(以下是单个节点案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//idsQuery id查询QueryBuilder builder = QueryBuilders.idsQuery("1","2");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//将获取的值转换成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key对应的值为:" +map.get(key));}}}
下一篇博客本人将书写java操作elasticsearch实现聚合查询。对后期博客感兴趣的朋友可以关注交流,转发请说明出处,本人的博客地址为:https://www.cnblogs.com/chenyuanbo/
技术在于交流!
转载于:https://www.cnblogs.com/chenyuanbo/p/10296845.html
java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询相关推荐
- wildcard java_java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
1.前缀查询(prefix) //prefix前缀查询 @Testpublic void test15() throwsUnknownHostException {//1.指定es集群 cluster ...
- java操作elasticsearch实现query String
1.CommonTersQuery: 指定字段进行模糊查询 //commonTermsQuery @Test public void test35() throws UnknownHostExcept ...
- java操作elasticsearch实现批量添加数据(bulk)
java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Testpublic void test7() throws IOExceptio ...
- Java操作Elasticsearch的所有方法
使用Java操作Elasticsearch的所有方法 13.1 Elasticsearch简介 Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中 ...
- (六)Java操作elasticSearch(2)
Java操作elasticSearch(2) 一.DSL查询文档: 0.DSL: 1.DSL查询分类 2.全文检索查询 3.精准查询 4.地理坐标查询 5.组合查询 二.搜索结果的处理: 0.搜索结果 ...
- Java操作ElasticSearch
1.1 引入maven依赖 <dependency><groupId>org.elasticsearch</groupId><artifactId>el ...
- elasticsearch基本操作 --- 使用java操作elasticsearch
随着大数据的兴起,面对越来越多的数据和越来越复杂的业务场景,系统对后端也提出了更高的要求,尤其是用户体验上,低延迟.快速响应已经成为检验后端程序是否高效很重要的标准,在后端的数据存储框架中,elast ...
- Java操作ElasticSearch,java程序设计教程第二版pdf
================================================================== 需要添加下面的maven依赖 org.elasticsearch ...
- elasticsearch基本操作之--使用java操作elasticsearch
本文转载自: https://www.cnblogs.com/wenbronk/p/6386043.html 作者:wenbronk 转载请注明该声明. /** * 系统环境: vm12 下的cent ...
最新文章
- 为提高访问速度建立本地文件服务器,html5 Application Cache——加快简历二次访问速度...
- VUE.js项目中控制台报错: Uncaught (in promise) NavigationDuplicated解决方法
- linux安装oem环境,【OEM】 oem12c_install_for_linux
- java代码着色_给java代码着色源码
- 安徽省2018计算机一级9月报名,2018年9月份全国计算机等级考试安徽财经大学考点报名通知...
- 企业中该如何防止僵尸网络的入侵?
- 成员变量的隐藏,方法的覆盖,super关键字
- 【BERT】BERT中CLS效果真的好嘛?这篇文章告诉你答案
- java学习class5
- CentOS7 MongoDB安裝
- 【DP专题】LintCode刷题笔记
- 什么是B2B,B2C,C2C?
- 《流浪方舟》- 废土世界的冒险之旅
- 总结低代码海报平台编辑器难点
- linux驱动:二、LED灯驱动编写
- python中标点符号大全及名字_标点符号大全及名字
- 数据结构——实现双栈操作
- 派大星如期反馈小程序的生命周期
- channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no
- Centos7安装socks5代理服务器和http代理服务器
热门文章
- python列表浅复制_Python列表深浅复制详解
- android怎样禁用整个布局点击,Android - 自动禁用布局里的所有子控件
- char qt 转unicode_Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题...
- Oracle存储过程中使用游标来批量解析CLOB字段里面的xml字符串:
- 十万字cpp成神总结-看完月薪25k
- MySQL -通过调整索引提升查询效率
- 《UNIX环境高级编程 3rd》笔记(1 / 21):UNIX基础知识
- Linux加密框架 crypto算法模板 以及CBC算法模板实例
- C++ puts函数 打印字符串很方便
- 科目二、科目三易挂项目整理和网友支招