ElasticSearch 5.3 SearchHit hit.field

时间:2017-04-26 01:18:38

标签: java elasticsearch

我一直在使用这个代码用于ES 2.3,它运行良好。我正在查询已经在弹性搜索中加载的数据。我无法在ES 5.3中执行此操作。我只想从加载到ES的300个字段中获取某些字段的值。而不是JSON我希望结果为“|”分隔。有没有办法与ES 5.3类似?

for( SearchHit hit : response.getHits())
{
 String s0 = hit.field("first_name").getValue().toString();
 result.add(s0);
 String s1 = hit.field("last_name").getValue().toString();
 result.add(s1);
 String s2 ="";
 if(hit.fields().containsKey("middle_name"))
{
 String s2 = hit.field("middle_name").getValue().toString();
 result.add(s2);
}

finalresult = s0 + "|" + s1 + "|" + s2;
}

提前感谢您的帮助

1 个答案:

答案 0 :(得分:4)

for( SearchHit hit : response.getHits())
            {
                Map<String, Object> map = hit.getSource();
             String s0 = map.get("first_name").toString();
             result.add(s0);
             String s1 = map.get("last_name").toString();
             result.add(s1);
             String s2 ="";
             if(map.containsKey("middle_name"))
            {
             String s2 = map.get("middle_name").toString();
             result.add(s2);
            }

            finalresult = s0 + "|" + s1 + "|" + s2;
            }