首页 文章

Elasticsearch NEST MultiSearch ArgumentNullException

提问于
浏览
0

当我尝试使用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 Source = mscorlib StackTrace:在Nest.Resolvers.Converters.MultiSearchConverter.ReadJson中的System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type [] methodInstantiation)中(JsonReader reader,Type objectType,Object existingValue,JsonSerializer序列化程序)w C:\ code \ elasticsearch-net \ src \ Nest \ Resolvers \ Converters \ MultiSearchConverter.cs:Nest.Resolvers.Converters.MultiSearchConverter.ReadJson中的第101行(JsonReader reader,Type objectType,Object existingValue,JsonSerializer)序列化程序)w C:\ code \ elasticsearch-net \ src \ Nest \ Resolvers \ Converters \ MultiSearchConverter.cs:Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter转换器,JsonReader reader,Type objectType,Object existingValue)中的第78行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 回答

相关问题