2017-09-26 19 views
0

我需要使用MultiSearch API从Jest提出一些请求。 我试图建立这样的搜索请求:如何使用Jest中的MultiSearch API执行请求?

Search search = new Search.Builder(query).addIndex(index).addType(type).build();

然后,我所有这些请求加入到集合,构建MultiSearch和得到的结果,就像这样:

List<Search> ms = new ArrayList<Search>(); 
for (#iterate over#) { 
    ms.add(search()) 
    //Adding the searches queries to the List 
} 
MultiSearch multi = new MultiSearch.Builder(ms).build(); 
MultiSearchResult multir = client.execute(multi); 

但这返回从弹性搜索这个错误:

{ 
    "error": { 
     "caused_by": { 
      "reason": "Unexpected end-of-input: expected close marker for Object (start marker at [Source: [email protected]; line: 1, column: 1])\n at [Source: [email protected]; line: 2, column: 3]", 
      "type": "json_e_o_f_exception" 
     }, 
     "reason": "Exception when parsing search request", 
     "root_cause": [ 
      { 
       "reason": "Exception when parsing search request", 
       "type": "parse_exception" 
      } 
     ], 
     "type": "parse_exception" 
    }, 
    "status": 400 
} 

所以我的问题是,如何执行与je的MultiSearch请求st?

回答

1

好了,测试之后,我发现了一个解决方案:

Search search = new Search.Builder(query.toString().replaceAll("\\n|\\r", "")).addIndex(es_index_data) 
       .addType(es_type_data).build(); 
相关问题