当前位置:   article > 正文

Elasticsearch Java REST Client 查询_elasticsearchclient in查询

elasticsearchclient in查询

上一篇:Elasticsearch Java REST Client 初始化、添加索引及数据
下一篇:Elasticsearch Java REST Client 删除、修改

简单查询

# 简单通过id获取数据
@GetMapping("get")
public GetResponse get(String id) {
     GetResponse response = null;
     try {
         GetRequest getRequest = new GetRequest("edu-app-user", "doc", id);
         response = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);
     } catch (IOException e) {
         e.printStackTrace();
     }
     return response;
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
# GetRequest  可选方法
# 禁用源检索,禁用抓取_source,默认启用。获取取所有字段数据,如果禁用请设置要获取的字段数据,不指定结果sorce值为null
request.fetchSourceContext(FetchSourceContext.DO_NOT_FETCH_SOURCE);
@GetMapping("get")
public GetResponse get(String id) {
    GetResponse response = null;
    try {
        GetRequest request = new GetRequest("edu-app-user", "doc", id);
        request.fetchSourceContext(FetchSourceContext.DO_NOT_FETCH_SOURCE);
        response = restHighLevelClient.get(request, RequestOptions.DEFAULT);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return response;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
# 指定返回结果
@GetMapping("get2")
public GetResponse get2(String id) {
    GetResponse response = null;
    try {
        GetRequest request = new GetRequest("edu-app-user", "doc", id);
        // 结果中展示的字段
        String[] includes = new String[]{"name", "age"};
        // 要排除的字段,如果没有,设置为空数组
        String[] excludes = Strings.EMPTY_ARRAY;
        FetchSourceContext fetchSourceContext = new FetchSourceContext(FetchSourceContext.FETCH_SOURCE.fetchSource(), includes, excludes);
        request.fetchSourceContext(fetchSourceContext);
        response = restHighLevelClient.get(request, RequestOptions.DEFAULT);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return response;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
# 指定排除结果
@GetMapping("get3")
public GetResponse get3(String id) {
     GetResponse response = null;
     try {
         GetRequest request = new GetRequest("edu-app-user", "doc", id);
         // 结果中展示的字段,空则全部展示
         String[] includes =  Strings.EMPTY_ARRAY;
         // 要排除的字段
         String[] excludes = new String[]{ "age"};
         FetchSourceContext fetchSourceContext =
                 new FetchSourceContext(FetchSourceContext.FETCH_SOURCE.fetchSource(), includes, excludes);
         request.fetchSourceContext(fetchSourceContext);
         response = restHighLevelClient.get(request, RequestOptions.DEFAULT);
     } catch (IOException e) {
         e.printStackTrace();
     }
     return response;
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
# 异步获取数据
@GetMapping("get4")
public void get4(String id) {
    try {
        GetRequest request = new GetRequest("edu-app-user", "doc", id);
        restHighLevelClient.getAsync(request, RequestOptions.DEFAULT,new EduAppUserGetListener());
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
# 监听类与异步添加数据结果一致,仅更换泛型即可
package com.wdz.es.config.es;

import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexResponse;

public class EduAppUserGetListener implements ActionListener<GetResponse> {
    @Override
    public void onResponse(GetResponse response) {
        System.out.println("异步获取成功:"+ response);
    }

    @Override
    public void onFailure(Exception e) {
        System.out.println("异步获取失败:"+ e.getMessage());
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
# 判断指定数据是否存在
# 结果是Boolean,为了提高效率可禁用抓取_source和禁用获取存储字段
@GetMapping("get5")
public boolean get5(String id) {
     try {
         GetRequest request = new GetRequest("edu-app-user", "doc", id);
         // 禁用源查询,默认启用,禁用后source为null
         // 禁用抓取_source
         request.fetchSourceContext(new FetchSourceContext(false));
         // 禁用获取存储的字段
         request.storedFields("_none_");
         return restHighLevelClient.exists(request, RequestOptions.DEFAULT);
     } catch (IOException e) {
         e.printStackTrace();
     }
     return false;
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
# 异步存在查询
@GetMapping("get6")
public void get6(String id) {
    GetRequest request = new GetRequest("edu-app-user", "doc", id);
    // 禁用源查询,默认启用,禁用后source为null
    // 禁用抓取_source
    request.fetchSourceContext(new FetchSourceContext(false));
    // 禁用获取存储的字段
    request.storedFields("_none_");
    restHighLevelClient.existsAsync(request, RequestOptions.DEFAULT, new ExistsAsyncListen());
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
# 监听类,与查询数据和添加监听一致,更换泛型即可
package com.wdz.es.config.es;
import org.elasticsearch.action.ActionListener;
public class ExistsAsyncListen implements ActionListener<Boolean> {
    @Override
    public void onResponse(Boolean aBoolean) {
        System.out.println("是否存在:"+aBoolean);
    }

    @Override
    public void onFailure(Exception e) {
        System.out.println("查询异常:"+e.getMessage());
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

上一篇:Elasticsearch Java REST Client 初始化、添加索引及数据
下一篇:[Elasticsearch Java REST Client 删除、修改]

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号