我正在尝试使用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/