2017-04-26 8 views
1

私はこのコードをES 2.3用に使用しており、うまくいきました。私はElastic検索で既に読み込まれたデータに対してクエリを実行しています。私はES 5.3でこれを行うことができません。私は、ESにロードされた300のフィールドから特定のフィールドの値を取得しようとしています。 JSONの代わりに結果を "|"区切られたES 5.3と似たようなことはありますか?ElasticSearch 5.3 SearchHit hit.field

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; 
} 

はES 5.3でこれをやっている間、あなたが任意の例外を取得しているあなたの助け

+0

のために事前にありがとうございますか! –

答えて

1
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; 
      } 
+0

ありがとうございました。 – pd123

+0

うまくいきました:) –

+0

私もこれが必要でした!便利になった! –