2014-05-14 19 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() 
     )); 

,如果這是在文檔中的某個地方 - 有人可以指點我嗎?

謝謝!