Elasticsearch NEST MultiSearch ArgumentNullException

时间:2015-03-12 15:49:39

标签: c# elasticsearch nest

当我尝试使用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.ArgumentNullException未被用户代码处理     的HResult = -2147467261     来源= mscorlib程序     堆栈跟踪:          在System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type [] methodInstantiation)中          在Nest.Resolvers.Converters.MultiSearchConverter.ReadJson(JsonReader reader,Type objectType,Object existingValue,JsonSerializer serializer)w C:\ code \ elasticsearch-net \ src \ Nest \ Resolvers \ Converters \ MultiSearchConverter.cs:row 101          在Nest.Resolvers.Converters.MultiSearchConverter.ReadJson(JsonReader reader,Type objectType,Object existingValue,JsonSerializer serializer)w C:\ code \ elasticsearch-net \ src \ Nest \ Resolvers \ Converters \ MultiSearchConverter.cs:row 78          in Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter,JsonReader reader,Type objectType,Object existingValue)          在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader,Type objectType,Boolean checkAdditionalContent)

但是,只有当我使用对象初始化语法时 - 当我使用Fluent语法时:

var result2 = _client.MultiSearch(ms => ms
                .Search<MyClass>("esproj", s => s.MatchAll())
                .Search<MyClass>("people", s => s.MatchAll())
            );

一切都好(我得到了结果)。我的Nest客户端版本是1.4.2。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

这绝对是个错误。刚刚打开https://github.com/elastic/elasticsearch-net/issues/127并将在下一个版本中解决此问题。