2017-02-16 5 views
0

私は私の要求が怒鳴るコードに次のようになりnest elasticsearch:SearchRequestオブジェクトで複数のタイプをターゲットにする方法は?

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、それは私が 'VARのsearchRequest =新しいSearchRequestを(持って –

+0

私には結果を与えません){ ...} ' ' var result = client.Search (searchRequest); ' と私は実際のリクエストがすべてのindiciesとすべてのタイプを照会する' POST/_search'であることがわかります –

+0

私はvar searchRequest = new SearchRequest ()var SearchRequest = new SearchRequest ()のインスタンスでは、 ypes !!! :Dありがとう。しかし、残念ながら、それはすべてのインデックスにもあります(私はこれを望んでいません):(: –

関連する問題