2014-05-14 29 views
1

我有一个电影和音乐分贝。根据用户是否在电影或音乐中,这些方面需要改变。我试过使用.OnFields(字符串[])传递数组(根据电影/音乐改变),但我得到一个错误。如何在Elasticsearch和Nest中添加动态构面

这里是我正在使用的代码生成错误。我错过了什么?

string[] facetFields = new []{"genres","format","decades","price"}; 

var searchResult = client.Search<MyData>(s => s 
      .MatchAll() 
      .FacetTerm(t => t 
       .OnFields(facetFields) 
       .Order(TermsOrder.term) 
       .AllTerms() 
      )); 

的错误是:

"Couldn't infer name for facet of type TermFacetDescriptor`1" 

回答

1

找到了答案。你必须命名面(我知道,但不知道在哪里),像这样......

参见“MyFacet”下面......

var searchResult = client.Search<MyData>(s => s 
     .MatchAll() 
     .FacetTerm("MyFacet", t => t 
      .OnFields(facetFields) 
      .Order(TermsOrder.term) 
      .AllTerms() 
     )); 

,如果这是在文档中的某个地方 - 有人可以指点我吗?

谢谢!