博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java操作elasticsearch实现query String
阅读量:6941 次
发布时间:2019-06-27

本文共 3150 字,大约阅读时间需要 10 分钟。

1、CommonTersQuery: 指定字段进行模糊查询

//commonTermsQuery@Testpublic void test35() 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)            .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));    QueryBuilder builder = QueryBuilders.commonTermsQuery("name","zhaoliu");    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、queryStringQuery

  说明:根据值去每个字段进行模糊查询 +代表必须含有  -代表不能含有

//queryStringQuery  根据值去每个字段进行模糊查询 +代表必须含有  -代表不能含有@Testpublic void test36() 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)            .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));    //查询文档中含必须含有changge,不含有hejiu的文档(会每个字段去查询)+代表必须含有  -代表不能含有    QueryBuilder builder = QueryBuilders.queryStringQuery("+changge  -hejiu");    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、simpleQueryStringQuery  

  说明:根据值去每个字段进行模糊查询 只要有一个符合就会返回该文章

 

 

//simpleQueryStringQuery  根据值去每个字段进行模糊查询 只要有一个符合就会返回该文章@Testpublic void test37() 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)            .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));    //只要所有字段中,含有changge或hejiui的都返回    QueryBuilder builder = QueryBuilders.simpleQueryStringQuery("changge  hejiu");    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/

技术在于交流!

 

转载于:https://www.cnblogs.com/chenyuanbo/p/10296851.html

你可能感兴趣的文章
二十年后的回眸(9)——十年著书路
查看>>
看完这些干货帖,大数据产品从入门到精通
查看>>
Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心
查看>>
GitOps:Kubernetes多集群环境下的高效CICD实践
查看>>
KVM Bonding Vlan Bridge功能测试
查看>>
我的友情链接
查看>>
把握数据库发展趋势 DBA应如何避免“踩坑”?
查看>>
Knative 核心概念介绍:Build、Serving 和 Eventing 三大核心组件
查看>>
P2V实现VMware Workstation 虚拟机到ESXi主机
查看>>
OpenGL入门学习[七]
查看>>
ip v5
查看>>
SQL高级查询技巧
查看>>
jar not loaded. org.apache.jasper.JasperExcep
查看>>
ls命令详解
查看>>
【Oracle】数据库启动阶段参数文件、控制文件的问题处理
查看>>
使用Metasploit工作区
查看>>
6425C-Lab13 管理站点与AD复制
查看>>
[转载]中国648个超级亿万富豪都是谁?
查看>>
快捷键
查看>>
mac系统快捷键大全详细介绍
查看>>