我一直在使用这个代码用于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;
}
提前感谢您的帮助
答案 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;
}