2015-03-12 2 views
0

Когда я пытаюсь использовать очень простой пример оператора Multisearch из НЕСТ документации:Elasticsearch NEST Multisearch ArgumentNullException

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 was unhandled by user code HResult=-2147467261 Source=mscorlib StackTrace: in System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type[] methodInstantiation) in 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 in 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) in 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. Что я делаю неправильно?

+0

Я никогда не пробовал подход MultiSearchRequest. Я бы придерживался свободного подхода, это будет гораздо более распространенным явлением и то, как вы найдете большинство людей, которые это делают. – jhilden

ответ

Смежные вопросы