2014-09-29 32 views
0

我已經定義,像這樣我的POCO類型的類:POCO Id屬性沒有被發現

[Elastictype(Name="doc", IdProperty="Id")] 
public class Doc{ 
     public string Id; 
     public string Name; 
     .... 
} 

但是它仍然產生一個隨機哈希ID中,而不是我的.index()請求,但id屬性也得到保存在文件中。

我試過,沒有Elastictype定義,結果仍然相同。

我能夠得到它的唯一方法是通過明確設置.Index請求中的ID來定義,這在我無法在批量操作中找到。有人能告訴我爲什麼我的POCO ID不被NEST識別並且如何啓用它?或者如何在我的批量請求中顯式設置一個ID?

+0

Constrol怪胎我想這是因爲你使用'fields'而不是'properties'您可以張貼在這個GitHub的問題,以便我們可以討論在這方面支持? – 2014-10-13 09:38:10

回答

1

您可以在批量操作過程中明確設置ID。我已經使用在過去的成功如下:

var docs = new List<Doc>(); 
    var bulkDescriptor = new BulkDescriptor; 

    // assumes that docs has been populated... 
    foreach(var doc in docs) 
    { 
     bulkDescriptor.Index<Doc>(op => op.Object(doc).Id(doc.Id)); 
    } 

    //assumes using an already defined ElasticsearchClient 
    var response = Client.Bulk(descriptor => bulkDescriptor); 
+0

實際上能夠找出這一個 - Bulk w/id,但我仍然想知道爲什麼屬性初始值設定項不能識別id屬性 – 2014-09-30 16:31:44

相關問題