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

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

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

  2. es java match_java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)...

    1.条件match query查询 //条件查询match query @Testpublic void test10() throwsUnknownHostException {//1.指定es集群 ...

  3. 【弄nèng - Elasticsearch】DSL入门篇(五)—— 常用查询

    文章目录 1. term.terms查询 2. match查询 3. match_all查询 4. multi_match查询 5. match_phrase短语匹配 5.1 查询keyword 5. ...

  4. elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    文章目录 一.基本了解 1.1 插件分类 1.2 插件管理命令 二.分析插件 2.1 es中的分析插件 2.1.1 官方核心分析插件 2.1.2 社区提供分析插件 2.2 API扩展插件 三.Head ...

  5. 使用curl命令操作elasticsearch And 使用http 查询ES

    第一:_cat系列  _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行  curl -XGET localhost:9200/_cat  获取所有_cat系列的操作 ...

  6. es查询语句拼接 java_JAVA使用ElasticSearch查询in和not in的实现方式

    JAVA使用ElasticSearch查询in和not in的实现方式 发布时间:2020-08-22 16:03:11 来源:脚本之家 阅读:119 作者:执笔记忆的空白 ElasticSearch ...

  7. Python操作ElasticSearch条件查询

    1.列表元素之一查询,如 "terminalType": ["pc", "mobile"] 正确用法: GET http://0.0.0.0 ...

  8. Python 操作 Elasticsearch 实现 增 删 改 查

    Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...

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

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

最新文章

  1. ubuntu16.04 terminal无法正常运行
  2. 大家一起学面向对象设计模式系列Chapter 02 软件设计的基本原则
  3. 软工网络15个人阅读作业2——提问题
  4. macOS Big Sur11.2发布候选版更新:修复蓝牙和显示连接问题
  5. php变量有三种不同的作用域,PHP中变量类型与转换,变量的检测以及变量的作用域学习--2018年4月13日12时03分...
  6. flex布局怎么设置子元素大小_48张小图带你领略Flex 布局之美
  7. 【Vegas原创】Exchange报550 5.7.1 Unable to relay for …错误的分析
  8. 1.4 案例:广告预测、房价预测
  9. 在肉鸡上构建一个完美的虚拟主机
  10. PDFlib+PDI图像和超文本元素提供了许多有用的功能
  11. POJ 3345 Bribing FIPA(树形dp+背包)
  12. 中国联通5G网络架构
  13. [转] 海尔集团CEO张瑞敏演讲《人不成熟的几大特征》
  14. GILT市场方兴未艾
  15. GD32F450IKH6以太网发数据死机的调试问题,求救
  16. Kali-Linux 永久获得超级用户权限
  17. TCP/IP详解--接收RST回应的几种情况
  18. 网吧系统母盘制作(系统分区整体考虑优化配置篇)
  19. 股票基金模拟交易日志6
  20. F1到F12使用说明书

热门文章

  1. Python PIL Image 4通道透明图片叠加(ARGB)
  2. Adobe Xd快捷键(Win 10)-UI设计更便捷
  3. 使用 python 压缩 png 图片,高达 80% 压缩率,肉眼无差异!
  4. 销量预测模型案例实战
  5. Win11如何添加默认打印机?
  6. c35是什么意思_混凝土C35P6是什么意思
  7. Kubernetes部署记录
  8. ArcEngine ISymbol效果预览
  9. win10无限蓝屏_升级 Win10 后系统蓝屏或无限重启的解决方法之一
  10. 标准柯西分布_对柯西分布性质的进一步讨论