2016-11-24 12 views
0

私はちょうど私は、次のネストクエリを持っている最新の2.4.7NEST非推奨のフィールド[含める]

に2.3.4から5.0.1への弾性検索を更新し、巣C#のnugetパッケージ:

 SourceFilter sourceFilter = new SourceFilter() 
     { 
      Include = Infer.Fields<Page>(p => p.Category, p => p.Title) 
     }; 

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

     var searchQuery = new SearchRequest<Page>() 
     { 
      From = search.ResultsFrom, 
      Size = search.ResultsSize, 
      Source = sourceFilter, 
      Query = multiMatchQuery 
     }; 

     var searchResponse = client.Search<Page>(searchQuery); 

私は戻って弾性から、次のエラーを取得しています:SourceFilterをコメントアウト

Deprecated field [include] used, expected [includes] instead

は、クエリが通じ実行することができます。

SourceFilterを使用する別の方法はありますか?

答えて

1

;:私はあなたを再現した場合、それは次のようになりますナゲットの最新バージョン5.xは5.0.0-rc3(プレリリース)で、すぐにリリースされる予定です。

5.x contains the Includes property on ISourceFilterKulasangar highlights in his answer

+0

私は見る。 Nugetのプレリリース版にタグ付けされているため、そのバージョンは表示されませんでした。ありがとう! –

+0

心配はいりません! GAのリリースはすぐになります:) –

1

Includeの構文は、source filtering usageに従ってIncludeの代わりにIncludesでなければなりません。上で述べたエラーでさえ、Includeの構文が間違っています。私はバージョンの互換性についてはよく分からない。あなたがElasticsearch 5.0.1、you should use a 5.x version of NESTに対して実行している場合

Source = new SourceFilter() 
    { 
     Includes = Infer.Fields<Page>(p => p.Category, p => p.Title)   
    }; 
+0

あなたはどのバージョンのNESTライブラリをお持ちですか?私は表示されません。IncludesはSourceFilterのプロパティです –

+0

@AndrewWalters申し訳ありませんが、NESTと一緒に作業していません。それを見て、[this](https://www.elastic.co/guide/en/elasticsearch/client/net-api/5.x/source-filtering-usage.html#_object_initializer_syntax_example_15)がポップアップしました。何が例外を投げ、含まれていますか? – Kulasangar

+0

Ya、Includesは実際にはNestライブラリのフィールド/プロパティではないようです。 –

関連する問題