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查询相关推荐

  1. wildcard java_java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询

    1.前缀查询(prefix) //prefix前缀查询 @Testpublic void test15() throwsUnknownHostException {//1.指定es集群 cluster ...

  2. java操作elasticsearch实现query String

    1.CommonTersQuery: 指定字段进行模糊查询 //commonTermsQuery @Test public void test35() throws UnknownHostExcept ...

  3. java操作elasticsearch实现批量添加数据(bulk)

    java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Testpublic void test7() throws IOExceptio ...

  4. Java操作Elasticsearch的所有方法

    使用Java操作Elasticsearch的所有方法 13.1 Elasticsearch简介 Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中 ...

  5. (六)Java操作elasticSearch(2)

    Java操作elasticSearch(2) 一.DSL查询文档: 0.DSL: 1.DSL查询分类 2.全文检索查询 3.精准查询 4.地理坐标查询 5.组合查询 二.搜索结果的处理: 0.搜索结果 ...

  6. Java操作ElasticSearch

    1.1 引入maven依赖 <dependency><groupId>org.elasticsearch</groupId><artifactId>el ...

  7. elasticsearch基本操作 --- 使用java操作elasticsearch

    随着大数据的兴起,面对越来越多的数据和越来越复杂的业务场景,系统对后端也提出了更高的要求,尤其是用户体验上,低延迟.快速响应已经成为检验后端程序是否高效很重要的标准,在后端的数据存储框架中,elast ...

  8. Java操作ElasticSearch,java程序设计教程第二版pdf

    ================================================================== 需要添加下面的maven依赖 org.elasticsearch ...

  9. elasticsearch基本操作之--使用java操作elasticsearch

    本文转载自: https://www.cnblogs.com/wenbronk/p/6386043.html 作者:wenbronk 转载请注明该声明. /** * 系统环境: vm12 下的cent ...

最新文章

  1. 为提高访问速度建立本地文件服务器,html5 Application Cache——加快简历二次访问速度...
  2. VUE.js项目中控制台报错: Uncaught (in promise) NavigationDuplicated解决方法
  3. linux安装oem环境,【OEM】 oem12c_install_for_linux
  4. java代码着色_给java代码着色源码
  5. 安徽省2018计算机一级9月报名,2018年9月份全国计算机等级考试安徽财经大学考点报名通知...
  6. 企业中该如何防止僵尸网络的入侵?
  7. 成员变量的隐藏,方法的覆盖,super关键字
  8. 【BERT】BERT中CLS效果真的好嘛?这篇文章告诉你答案
  9. java学习class5
  10. CentOS7 MongoDB安裝
  11. 【DP专题】LintCode刷题笔记
  12. 什么是B2B,B2C,C2C?
  13. 《流浪方舟》- 废土世界的冒险之旅
  14. 总结低代码海报平台编辑器难点
  15. linux驱动:二、LED灯驱动编写
  16. python中标点符号大全及名字_标点符号大全及名字
  17. 数据结构——实现双栈操作
  18. 派大星如期反馈小程序的生命周期
  19. channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no
  20. Centos7安装socks5代理服务器和http代理服务器

热门文章

  1. python列表浅复制_Python列表深浅复制详解
  2. android怎样禁用整个布局点击,Android - 自动禁用布局里的所有子控件
  3. char qt 转unicode_Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题...
  4. Oracle存储过程中使用游标来批量解析CLOB字段里面的xml字符串:
  5. 十万字cpp成神总结-看完月薪25k
  6. MySQL -通过调整索引提升查询效率
  7. 《UNIX环境高级编程 3rd》笔记(1 / 21):UNIX基础知识
  8. Linux加密框架 crypto算法模板 以及CBC算法模板实例
  9. C++ puts函数 打印字符串很方便
  10. 科目二、科目三易挂项目整理和网友支招