2016-11-24 113 views
0

我剛剛更新彈性搜索從2.3.4到5.0.1,和鳥巢C#NuGet包到最新的2.4.7NEST棄用領域包括]

我有以下窩查詢:

 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); 

我收到以下錯誤背面由彈性:

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

註釋掉SourceFilter允許查詢運行通過。

有沒有不同的使用方法SourceFilter

回答

1

Include的語法應Includes代替Include根據source filtering usage。即使你上面提到的錯誤簡化了Include的錯誤語法。我不確定版本的兼容性。如果我複製你的,就應該是這個樣子:

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

你有什麼版本的NEST庫?我沒有看到包含是SourceFilter的屬性 –

+0

@AndrewWalters抱歉,沒有與'NEST'一起工作。只需查看一下它[彈出](https://www.elastic.co/guide/en/elasticsearch/client/net-api/5.x/source-filtering-usage.html#_object_initializer_syntax_example_15)。是否包含,拋出任何異常? – Kulasangar

+0

雅,它看起來像包含實際上不是Nest庫的字段/屬性。 –