2016-11-24 53 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库的字段/属性。 –