2017-09-26 18 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(); 
相關問題