当我尝试使用NEST文档中一个非常简单的MultiSearch操作符示例时:
var request = new MultiSearchRequest
{
Operations = new Dictionary<string, ISearchRequest>
{
{ "esproj", new SearchRequest
{
Query = new QueryContainer(new MatchAllQuery())
}
},
{ "people", new SearchRequest
{
Query = new QueryContainer(new MatchAllQuery())
}
}
}
};
var result = _client.MultiSearch(request);然后,我有以下错误:
System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type[]阅读器中的用户代码HResult=-2147467261 Source=mscorlib StackTrace: in C:\code\elasticsearch-net\src\Nest\Resolvers\Converters\MultiSearchConverter.cs:row methodInstantiation),Nest.Resolvers.Converters.MultiSearchConverter.ReadJson(JsonReader阅读器中的objectType类型,Object existingValue,JsonSerializer序列化程序)w C:\code\elasticsearch-net\src\Nest\Resolvers\Converters\MultiSearchConverter.cs:row 101,objectType类型,Object existingValue,W C:\code\elasticsearch-net\src\Nest\Resolvers\Converters\MultiSearchConverter.cs:row 78 in Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter转换器,JsonReader读取器,objectType类型,Object existingValue)在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader读取器中,objectType类型,布尔型checkAdditionalContent)
但是,只有当我使用对象初始化器语法-当我使用流利语法时:
var result2 = _client.MultiSearch(ms => ms
.Search<MyClass>("esproj", s => s.MatchAll())
.Search<MyClass>("people", s => s.MatchAll())
);一切都很好(我得到了结果)。我的Nest客户端版本是1.4.2。我做错了什么?
发布于 2015-03-18 17:11:55
这绝对是个窃听器。刚刚打开https://github.com/elastic/elasticsearch-net/issues/127,并将在下一个版本中解决这个问题。
https://stackoverflow.com/questions/29014318
复制相似问题