0
這是我的文檔:NEST 2.0不堅持某些字段到ElasticSearch 2.0
[ElasticsearchType(Name = "MyDoc")]
public class MyDoc: Dictionary<string, object>
{
[String(Store = false, Index = FieldIndexOption.NotAnalyzed)]
public string text { get; set; }
}
正如你所看到的,它繼承Dictionary<string, object>
,所以我可以場dinamically添加到它(這是作出要求聚合工作)
我在這裏存儲的映射:
client.Map<MyDoc>(m => m.Index("myindexname").AutoMap());
現在我創建一個新的記錄,並將其存儲:
var rec= new MyDoc();
rec.Add("id", "mystuff");
rec.text = "mytext";
client.Index(rec, i => i.Index("myindexname"));
client.Refresh("myindexname");
該記錄實際存儲但文本字段未被保留。在這裏,JSON從ElasticSearch 2.0
回{
"_index": "myindexname",
"_type": "MyDoc",
"_id": "AVM3B2dlrjN2fcJKmw_z",
"_version": 1,
"_score": 1,
"_source": {
"id": "mystuff"
}
}
如果我刪除從MyDoc
的text
場被正確地存儲,但很明顯的詞典內容不是基類(我還需要爲文件沒有刪除.Add()
位繼承自Dictionary
)。
如何同時存儲text
字段和字典內容?
謝謝。看起來像一個使用字典存儲文本的包裝器。沒關係,但我一直在尋找正常字段未存儲的原因。必須可以存儲正常字段和字典內容 –
因爲您正在從字典繼承。 –
好吧,但爲什麼如果我從字典繼承其他領域被忽略。這是一個基本規則硬連接到elasticsearch或什麼? –