Elasticsearch - 使用java api获取源字段数据 [英] Elasticsearch - get source field data with java api

查看:1495
本文介绍了Elasticsearch - 使用java api获取源字段数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用jest的弹性搜索(作为java客户端)。
我需要一些在嵌套文档中的字段,由于不能将嵌套字段作为对,我需要'_source'来获取它们。



这是以前的问题以获得ES查询[链接],并且它的效果很好。



但是无法将其查询转换为jest代码。
以下是我的尝试。

  SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()。query(
query

.fields(//需要_source但没有方法
oid,
_source.events.activityoid,
_source.events.worktime) ;


解决方案

尝试使用 这样:

  SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()
()
.fetchSource(new String []空值);


I'm using elastic search with jest (as java client). I need some fields that is in nested document and since cannot get nested fields as pair, I need '_source' to get them.

Here is previous question to get them in ES query[ Link ], and It works well.

BUT cannot convert its query as jest code. Below is my try.

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query( 
            query
        )
        .fields(      // need _source but no method.
          "oid", 
          "_source.events.activityoid", 
          "_source.events.worktime");

解决方案

Try using fetchSource() like this:

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()
    .query(query)
    .fetchSource(new String[] {
      "oid", 
      "events.activityoid", 
      "events.worktime"
    }, null);

这篇关于Elasticsearch - 使用java api获取源字段数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆