2017-02-16 106 views
0

我想這樣做幾種類型的請求與SearchRequest對象嵌套elasticsearch:如何在SearchRequest對象中定位多種類型?

我的要求會是什麼樣到波紋管代碼:

var searchQuery = new BoolQuery 
{ 
     Should = shouldContainers, 
     Filter = filterContainers 
}; 

var searchRequest = new SearchRequest<dynamic>() 
{ 
    //Don't know how to target type 
    Type = EType.All, 
    //or 
    Type = typeof(obj1) && typeof(obj2) 
    Query = searchQuery, 
    Size = size 
    From = fromNumber, 
    MinScore = 1 
}; 

var response = await client.SearchAsync<dynamic>(searchRequest); 

你知道,如果有可能做這樣的事情和這個怎麼做?

回答

1

如果您未在端點中指定索引/類型,它將搜索整個羣集。

更新:

// 
    // Summary: 
    //  /_search 
    // 
    // Parameters: 
    // document: 
    //  describes an elasticsearch document of type T, allows implicit conversion from 
    //  numeric and string ids 
    public SearchRequest(); 

    // 
    // Summary: 
    //  /{index}/_search 
    // 
    // Parameters: 
    // index: 
    //  Optional, accepts null 
    public SearchRequest(Indices index); 

    // 
    // Summary: 
    //  /{index}/{type}/_search 
    // 
    // Parameters: 
    // index: 
    //  Optional, accepts null 
    // 
    // type: 
    //  Optional, accepts null 
    public SearchRequest(Indices index, Types type); 

    // The second one is what you are looking for, query on specific index regardless type, it does `POST /{index}/_search` 

    var searchRequest = new SearchRequest(myIndex){...} 
    var result = client.Search<dynamic>(searchRequest); 
+0

謝謝你,但IP似乎產生一個請求:POST:/索引/對象/ _search,這讓我沒有結果 –

+0

我有 'VAR searchRequest =新SearchRequest(){ ...}' 'var result = client.Search (searchRequest);' 我可以看到實際的請求是'POST/_search',它查詢所有的指示和所有類型 –

+0

是的,如果我寫var searchRequest = new SearchRequest ()var searchRequest = new SearchRequest (),它請求所有t YPES! :D謝謝。但不幸的是,它也在所有的索引(我不想這個):(:(你可以使用var searchRequest = new SearchRequest(index){...} // //摘要: // :( –

相關問題