Java中的ElasticSearch Multiget问题

时间:2016-05-13 07:24:47

标签: java elasticsearch

我是Java编程的新手,需要一些帮助。 我在代码下运行并得到适当的响应,即

The provided value 'moz-chunked-arraybuffer' is not a valid enum value of type XMLHttpRequestResponseType.

但是,当我尝试参数化搜索文本时,它不会返回任何值。任何人都可以指导这里可能出错的地方吗?我检查过变量abc正在返回正确的值,即“AVSoemK55hnvwxeDfgCc”,“AVSoemK55hnvwxeDfgCa”

{"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);
        }
    }

1 个答案:

答案 0 :(得分:0)

您不需要abc变量,即您不需要将列表转换为字符串。您只需要将idList传递给add()来调用这样的查询,因为此调用将采用索引,类型和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();
    ...