2016-11-27 7 views
1

最新の5.0.0-rc3で協力できないネスト2.3のコードスニペットが2つあります。NEST 5.xフィールド使用法

var titleField = Infer.Field<Page>(p => p.Title, 2); 
     var metaDescriptionField = Infer.Field<Page>(p => p.MetaDescription, 1.5); 
     var metaKeywordsField = Infer.Field<Page>(p => p.Keywords, 2); 
     var bodyField = Infer.Field<Page>(p => p.Body); 

     MultiMatchQuery multiMatchQuery = new MultiMatchQuery() 
     { 
      Fields = new [] { 
       bodyField, 
       metaKeywordsField, 
       metaKeywordsField, 
       titleField 
      }, 
      Query = search.Term 
     }; 

ここでビルドエラーは、 "暗黙的Nest.FieldsにNest.Field []変換できません" です。私は何かをすることができます

MultiMatchQuery multiMatchQuery = new MultiMatchQuery() 
     { 
      Fields = Infer.Fields<Page>(p => p.Title, p => p.MetaDescription, p => p.Keywords, p => p.Body), 
      Query = search.Term 
     }; 

しかし、私はフィールドの重みを失う。私はトラブルを抱えてきた

第2のフィールドuseagleは

var searchResponse = client.Search<Page>(s => s 
      .MatchAll() 
      .From(from) 
      .Size(size) 
      .Fields(f => f.Field(fi => fi.Id).Field(fi => fi.SourceId)) 
      ); 

ビルドエラーここにある「フィールズ」の定義となし拡張メソッドが含まれていません「Nest.SearchDescriptor」です「フィールド」は、最初の受け入れ型の引数「Nest.SearchDescriptor」が見つかりすることができた(あなたがusingディレクティブまたはアセンブリ参照が不足している?

を、私は何かがコンパイル可能な場合には取得して任意の運を持っていなかった。

答えて

2

暗黙の0を変換する演算子最新のリリースでは、5.xに〜Fieldsがありません。私は次のリリースに行くために、他の有益なオーバーロードに加えてこれを追加します。一方で、あなたは強い型付けを持つフィールドからFieldsを構築することができますし、また、第二部のためにあまりにも

Fields fields = new[] 
{ 
    "property1^1.2", 
    "property2^2", 
    "property3^5" 
}; 

を文字列を使用することができます

Fields fields = ((Fields)Infer.Field<Document>(f => f.Property1, 1.2)) 
        .And<Document>(f => f.Property2, 2) 
        .And<Document>(f => f.Property3, 5); 

後押しSearchRequest.Fields()が今.StoredFields()で、使用して、in line with the change in Elasticsearchは、格納されたフィールドのみを検索するために使用されることを示します(those set to store:true in the mapping)。この問題に記載されているように、を使用して_sourceフィールドから部分文書を取得する場合は、source filteringを使用することをお勧めします。

関連する問題