我正在创建一个动态对象。我通过IDictionary分配值。将IDictionary的集合添加到对象。然后我使用NEST代码将动态对象添加到弹性搜索。它抛出了stackoverflow异常。"类型' System.StackOverflowException'未处理的异常。发生在mscorlib.dll"
这是我尝试过的。
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node,defaultIndex: "test-index");
var client = new ElasticClient(settings);
try
{
dynamic x = new ExpandoObject();
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("NewProp", "test1");
dic.Add("NewProp3", "test1");
x = dic;
var index3 = client.Index(x);
}
catch (Exception ex)
{
string j = ex.StackTrace;
}
我需要在ElasticSearch中使用动态对象创建索引,因为我将有一个包含300多个工作表的excel工作簿,每个工作表都将被命名为类型,工作表中的内容将是_source。
在上面的例子中&#39; x&#39;创建的动态对象是工作表的名称,添加到字典中的值是excel表的行和列。
我哪里错了。
此致 HEMA
答案 0 :(得分:1)
我相信你可以跳过ExpandoObject
而只是索引Dictionary<string, object>()
。
var dictionary = new Dictionary<string, object>();
dictionary.Add("NewProp", "test1");
dictionary.Add("NewProp3", "test1");
client.Index(dictionary);