wildcard java_java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
1、前缀查询(prefix)
//prefix前缀查询
@Testpublic void test15() throwsUnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端
TransportClient client = newPreBuiltTransportClient(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 map =hit.getSourceAsMap();for(String key:map.keySet()) {
System.out.println(key+" key对应的值为:" +map.get(key));
}
}
}
2、wildcard模糊查询
//wildcard模糊查询
@Testpublic void test16() throwsUnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端
TransportClient client = newPreBuiltTransportClient(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 map =hit.getSourceAsMap();for(String key:map.keySet()) {
System.out.println(key+" key对应的值为:" +map.get(key));
}
}
}
3、fuzzy模糊查询
说明:fuzzy才是实现真正的模糊查询,我们输入的字符可以是个大概,他可以根据我们输入的文字大概进行匹配查询,具体可看文章中的解释和代码,注意与wildcard模糊查询的区别
//fuzzy模糊查询(输入的值输入个大概也可以查询出来)
@Testpublic void test17() throwsUnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端
TransportClient client = newPreBuiltTransportClient(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 map =hit.getSourceAsMap();for(String key:map.keySet()) {
System.out.println(key+" key对应的值为:" +map.get(key));
}
}
}//typeQuery类型查询
@Testpublic void test18() throwsUnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端
TransportClient client = newPreBuiltTransportClient(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 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() throwsUnknownHostException {//1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称
Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.创建访问ES服务器的客户端
TransportClient client = newPreBuiltTransportClient(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 map =hit.getSourceAsMap();for(String key:map.keySet()) {
System.out.println(key+" key对应的值为:" +map.get(key));
}
}
}
下一篇博客本人将书写java操作elasticsearch实现聚合查询。对后期博客感兴趣的朋友可以关注交流,转发请说明出处,本人的博客地址为:https://www.cnblogs.com/chenyuanbo/
技术在于交流!
wildcard java_java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询相关推荐
- java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
1.前缀查询(prefix) //prefix前缀查询 @Testpublic void test15() throws UnknownHostException {//1.指定es集群 cluste ...
- es java match_java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)...
1.条件match query查询 //条件查询match query @Testpublic void test10() throwsUnknownHostException {//1.指定es集群 ...
- 【弄nèng - Elasticsearch】DSL入门篇(五)—— 常用查询
文章目录 1. term.terms查询 2. match查询 3. match_all查询 4. multi_match查询 5. match_phrase短语匹配 5.1 查询keyword 5. ...
- elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器
文章目录 一.基本了解 1.1 插件分类 1.2 插件管理命令 二.分析插件 2.1 es中的分析插件 2.1.1 官方核心分析插件 2.1.2 社区提供分析插件 2.2 API扩展插件 三.Head ...
- 使用curl命令操作elasticsearch And 使用http 查询ES
第一:_cat系列 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行 curl -XGET localhost:9200/_cat 获取所有_cat系列的操作 ...
- es查询语句拼接 java_JAVA使用ElasticSearch查询in和not in的实现方式
JAVA使用ElasticSearch查询in和not in的实现方式 发布时间:2020-08-22 16:03:11 来源:脚本之家 阅读:119 作者:执笔记忆的空白 ElasticSearch ...
- Python操作ElasticSearch条件查询
1.列表元素之一查询,如 "terminalType": ["pc", "mobile"] 正确用法: GET http://0.0.0.0 ...
- Python 操作 Elasticsearch 实现 增 删 改 查
Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...
- 【236期】ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...
最新文章
- ubuntu16.04 terminal无法正常运行
- 大家一起学面向对象设计模式系列Chapter 02 软件设计的基本原则
- 软工网络15个人阅读作业2——提问题
- macOS Big Sur11.2发布候选版更新:修复蓝牙和显示连接问题
- php变量有三种不同的作用域,PHP中变量类型与转换,变量的检测以及变量的作用域学习--2018年4月13日12时03分...
- flex布局怎么设置子元素大小_48张小图带你领略Flex 布局之美
- 【Vegas原创】Exchange报550 5.7.1 Unable to relay for …错误的分析
- 1.4 案例:广告预测、房价预测
- 在肉鸡上构建一个完美的虚拟主机
- PDFlib+PDI图像和超文本元素提供了许多有用的功能
- POJ 3345 Bribing FIPA(树形dp+背包)
- 中国联通5G网络架构
- [转] 海尔集团CEO张瑞敏演讲《人不成熟的几大特征》
- GILT市场方兴未艾
- GD32F450IKH6以太网发数据死机的调试问题,求救
- Kali-Linux 永久获得超级用户权限
- TCP/IP详解--接收RST回应的几种情况
- 网吧系统母盘制作(系统分区整体考虑优化配置篇)
- 股票基金模拟交易日志6
- F1到F12使用说明书