java - 使用Java Jest在Elasticsearch中按ID查找带有附加过滤器的文档

标签 java elasticsearch jest

我正在尝试使用JEST Java API通过ID获取文档,并进行其他检查是否存在元素
例如,假设我有一个Java对象,用户具有字段ID,名字,姓氏,并且如果文档的索引根本没有名字元素,我想将其过滤掉
现在我正在做这样的事情

public Optional<User> findById(long id) {
    try {
      Get action = new Get.Builder(INDEX_ALIAS, String.valueOf(id)).build();
      User user= execute(action).getSourceAsObject(User.class);
      if (user!= null && user.getFirstName()!=null)) {
        return Optional.ofNullable(user);
      } else {
        return Optional.empty();
      }
    } catch (NoSuchElementException ex) {
      return Optional.empty();
    }
  }
有没有更好的方法可以使此检查本身在查询中。

最佳答案

正如Abhijit所说,exits query可能就是您想要的。

Returns documents that contain an indexed value for a field.


在高级Java客户端中,它可以与ExistsQueryBuilder一起使用。

关于java - 使用Java Jest在Elasticsearch中按ID查找带有附加过滤器的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63175591/

相关文章:

java - 为什么ReentrantLock在这个演示代码中没有表现出它的不公平性?

java - 将常用方法的返回类型修改为其子类型

java - SSL Elasticsearch

node.js - 在带有时间戳的 kibana 中没有符合您搜索条件的结果

java - 使用Java中的JEST API向索引添加别名并删除索引

elasticsearch - 如何使用java应用程序中的jest api使文档在 Elasticsearch 中过期?

java - 服务器/客户端 java.net.SocketException

java - 如何在docker入口点之前透明地运行脚本?

elasticsearch - 如何在Elasticsearch查询中用具体的日期时间替换 “now”?

spring - 如果我减少@Document批注中的shards参数,Elasticsearch会自行减少shards数量吗?