2016-05-13 4 views
0

私はJavaプログラミングには新しく、ここでいくつかの助けが必要です。 私は検索テキスト、そのは、任意の値を返さないをparameteriseしようとしているとき、私は、しかし、すなわちJavaでのElasticSearch Multigetの問題

{"name1":"Name2","date1":"2016-05-13","message1":"Message2"} 
{"name1":"Name0","date1":"2016-05-13","message1":"Message0"} 


MultiGetResponse multiGetItemResponses = client.prepareMultiGet() 
     .add("loc", "message", "AVSoemK55hnvwxeDfgCc", "AVSoemK55hnvwxeDfgCa").get(); 


for(MultiGetItemResponse itemResponse: multiGetItemResponses){ 
GetResponse response2 = itemResponse.getResponse(); 
     if(response2.isExists()){ 
     String json2 = response2.getSourceAsString(); 
     System.out.println(json2); 
     } 
    } 

をコードの下に実行し、適切な応答を取得しています。誰もここで間違っているかもしれないものを案内してもらえますか?私はつまり、あなたが文字列にあなたのリストを変換する必要はありません、あなたがabc変数を必要としない「AVSoemK55hnvwxeDfgCa」

public static boolean getData(String ids){ 

    String idAry[] = ids.split(","); 

    ArrayList<String> idStr = new ArrayList<String>(); 
    for (String id:idAry){ 
     idStr.add('"'+id+'"'); 

    } 

    String abc = idStr.toString().replace("[", "").replace("]", ""); 
    System.out.println(abc); 
    MultiGetResponse multiGetItemResponses = client.prepareMultiGet() 
      .add("loc", "message", abc).get(); 
// MultiGetResponse multiGetItemResponses = client.prepareMultiGet() 
//   .add("loc", "message", "AVSoemK55hnvwxeDfgCc", "AVSoemK55hnvwxeDfgCa").get(); 
// 

    for(MultiGetItemResponse itemResponse: multiGetItemResponses){ 
    GetResponse response2 = itemResponse.getResponse(); 
      if(response2.isExists()){ 
      String json2 = response2.getSourceAsString(); 
      System.out.println(json2); 
      } 
     } 
    return true; 

    } 

答えて

0

、変数ABCは正しい値、すなわち「AVSoemK55hnvwxeDfgCc」を返していることを確認しています。 idListadd()コールに渡すことで、このようなクエリを作成するだけで、このコールではインデックス、タイプ、およびIterable<String>が使用されるため、idListはすでにジョブに適合しています。

public static boolean getData(String ids){ 
    String idAry[] = ids.split(","); 
    List<String> idList = Arrays.asList(idAry); 

    MultiGetResponse multiGetItemResponses = client.prepareMultiGet() 
     .add("loc", "message", idList).get(); 
    ... 
+0

クール、それは働いた。 –

+0

すごく、うれしかった!! – Val

+0

複数の 'where'条件を持つ各クエリでMultiGerResponseクエリを作成する方法は?ありがとう! – Vimal