2017-03-06 9 views
0

弾性バージョン5.2 私は弾性DSLでこのクエリを持っています。Nest SDK for Elasticを使用してtop_terms_Nを書き換える方法を教えてください。

POST my-index/_search 
{ 
    "query": { 
    "wildcard": { 
     "Author": { 
     "value": "*joe*", 
     "rewrite": "top_terms_15" 
     } 
    } 
    } 
} 

Nest SDKを使用して同じクエリを書きたいと思います。

private Nest.WildcardQuery CreateQuery() 
    { 
     Nest.WildcardQuery query = new Nest.WildcardQuery(); 
     query.Field = "Author"; 
     query.Value = "*joe*";   

     query.Rewrite = Nest.RewriteMultiTerm.TopTermsN; 
     //Now how to specify a value for N ? 

     return query; 
    } 

Nの値はどのように指定できますか?

弾性バージョン5.2.1 Kibanaバージョン5.2.1 ネストバージョン5.2.0

答えて

0

(Nest.RewriteMultiTerm.TopTermsNを使用する場合)これは、弾性SDKのバグであり、弾性人々によれば、これは希望次の5.xリリースで修正される予定です。

詳細は弾力的なフォーラムで見つけることができます。修正プログラムが利用可能になるまで

https://discuss.elastic.co/t/how-to-specify-top-terms-n-rewrite-using-nest-sdk/77743/3

はそれによると、この問題の回避策があります。

回避策 NESTで公開されているロークライアントを使用してください。

var response = client.LowLevel.Search<SearchResponse<object>>("my-index", 
@"{ 
    ""query"": { 
     ""wildcard"": { 
      ""Author"": { 
       ""value"": ""*joe*"", 
       ""rewrite"": ""top_terms_15"" 
      } 
     } 
    } 
}"); 

// a search response that you would be returned from a NEST search query 
var nestResponse = response.Body; 
関連する問題