コード例 #1
0
        /// <summary>
        /// _msearch needs a specialized json format in the body
        /// </summary>
        public string SerializeMultiSearch(IMultiSearchRequest multiSearchRequest)
        {
            var sb       = new StringBuilder();
            var inferrer = new ElasticInferrer(this._settings);

            foreach (var operation in multiSearchRequest.Operations.Values)
            {
                var path = operation.ToPathInfo(this._settings);
                var op   = new
                {
                    index       = path.Index,
                    type        = path.Type,
                    search_type = this.GetSearchType(operation, multiSearchRequest),
                    preference  = operation.Preference,
                    routing     = operation.Routing
                };
                var opJson = this.Serialize(op, SerializationFormatting.None).Utf8String();

                var action = "{0}\n".F(opJson);
                sb.Append(action);
                var searchJson = this.Serialize(operation, SerializationFormatting.None).Utf8String();
                sb.Append(searchJson + "\n");
            }
            var json = sb.ToString();

            return(json);
        }
コード例 #2
0
        private void CreateMultiSearchConverter(IMultiSearchRequest request)
        {
            var formatter  = new MultiSearchResponseFormatter(request);
            var serializer = ConnectionSettings.CreateStateful(formatter);
            var creator    = new MultiSearchCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s));

            request.RequestParameters.DeserializationOverride = creator;
        }
コード例 #3
0
 protected string GetSearchType(ISearchRequest descriptor, IMultiSearchRequest multiSearchRequest)
 {
     if (descriptor.SearchType != null)
     {
         return(descriptor.SearchType.Value.GetStringValue());
     }
     return(multiSearchRequest.RequestParameters.GetQueryStringValue <string>("search_type"));
 }
コード例 #4
0
		private JsonConverter CreateMultiSearchDeserializer(IMultiSearchRequest request)
		{
			if (request.Operations != null)
			{
				foreach (var operation in request.Operations.Values)
					CovariantSearch.CloseOverAutomagicCovariantResultSelector(this.Infer, operation);
			}

			return new MultiSearchResponseJsonConverter(this.ConnectionSettings, request);
		}
コード例 #5
0
 /// <inheritdoc />
 public IMultiSearchResponse MultiSearch(IMultiSearchRequest request) =>
 Dispatcher.Dispatch <IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse>(
     request,
     (p, d) =>
 {
     var converter  = CreateMultiSearchDeserializer(p);
     var serializer = ConnectionSettings.CreateStateful(converter);
     var creator    = new MultiSearchCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s));
     request.RequestParameters.DeserializationOverride = creator;
     return(LowLevelDispatch.MsearchDispatch <MultiSearchResponse>(p, new SerializableData <IMultiSearchRequest>(p)));
 }
     );
コード例 #6
0
        private JsonConverter CreateMultiSearchDeserializer(IMultiSearchRequest request)
        {
            if (request.Operations != null)
            {
                foreach (var operation in request.Operations.Values)
                {
                    CovariantSearch.CloseOverAutomagicCovariantResultSelector(this.Infer, operation);
                }
            }

            return(new MultiSearchResponseJsonConverter(this.ConnectionSettings, request));
        }
コード例 #7
0
		private JsonConverter CreateMultiSearchConverter(IMultiSearchRequest descriptor)
		{
			if (descriptor.Operations != null)
			{
				foreach (var kv in descriptor.Operations)
					SearchPathInfo.CloseOverAutomagicCovariantResultSelector(this.Infer, kv.Value);				
			}


			var multiSearchConverter = new MultiSearchConverter(_connectionSettings, descriptor);
			return multiSearchConverter;
		}
コード例 #8
0
		/// <inheritdoc />
		public Task<IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest multiSearchRequest) 
		{
			return this.DispatchAsync<IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
				multiSearchRequest,
				(p, d) =>
				{
					var converter = CreateMultiSearchConverter(d);
					var json = Serializer.SerializeMultiSearch(d);
					var creator = new MultiSearchCreator((r, s) => this.DeserializeMultiSearchHit(r, s, converter));
					return this.RawDispatch.MsearchDispatchAsync<MultiSearchResponse>(p.DeserializationState(creator), json);
				}
			);
		}
コード例 #9
0
 /// <inheritdoc />
 public Task <IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest multiSearchRequest)
 {
     return(this.DispatchAsync <IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
                multiSearchRequest,
                (p, d) =>
     {
         var converter = CreateMultiSearchConverter(d);
         var json = Serializer.SerializeMultiSearch(d);
         var creator = new MultiSearchCreator((r, s) => this.DeserializeMultiSearchHit(r, s, converter));
         return this.RawDispatch.MsearchDispatchAsync <MultiSearchResponse>(p.DeserializationState(creator), json);
     }
                ));
 }
コード例 #10
0
		/// <inheritdoc />
		public IMultiSearchResponse MultiSearch(IMultiSearchRequest multiSearchRequest)
		{
			return this.Dispatch<IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse>(
				multiSearchRequest,
				(p, d) =>
				{
					var converter = CreateMultiSearchConverter(d);
					var json = Serializer.SerializeMultiSearch(d);
					var creator = new Func<IElasticsearchResponse, Stream, MultiSearchResponse>((r, s) => this.DeserializeMultiSearchHit(r, s, converter));
					return this.RawDispatch.MsearchDispatch<MultiSearchResponse>(p.DeserializationState(creator), json);
				}
			);
		}
コード例 #11
0
 /// <inheritdoc />
 public IMultiSearchResponse MultiSearch(IMultiSearchRequest request)
 {
     return(this.Dispatcher.Dispatch <IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse>(
                request,
                (p, d) =>
     {
         var converter = CreateMultiSearchDeserializer(p);
         var serializer = this.ConnectionSettings.StatefulSerializer(converter);
         var creator = new MultiSearchCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s));
         request.RequestParameters.DeserializationOverride(creator);
         return this.LowLevelDispatch.MsearchDispatch <MultiSearchResponse>(p, (object)p);
     }
                ));
 }
コード例 #12
0
		/// <inheritdoc />
		public IMultiSearchResponse MultiSearch(IMultiSearchRequest request)
		{
			return this.Dispatcher.Dispatch<IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse>(
				request,
				(p, d) =>
				{
					var converter = CreateMultiSearchDeserializer(p);
					var serializer = this.ConnectionSettings.StatefulSerializer(converter);
					var creator = new MultiSearchCreator((r, s) => serializer.Deserialize<MultiSearchResponse>(s));
					request.RequestParameters.DeserializationOverride(creator);
					return this.LowLevelDispatch.MsearchDispatch<MultiSearchResponse>(p, (object)p);
				}
			);
		}
コード例 #13
0
 /// <inheritdoc />
 public Task <IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request,
                                                     CancellationToken cancellationToken = default(CancellationToken)
                                                     ) => Dispatcher.DispatchAsync <IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
     request,
     cancellationToken,
     (p, d, c) =>
 {
     var converter  = CreateMultiSearchDeserializer(p);
     var serializer = ConnectionSettings.CreateStateful(converter);
     var creator    = new MultiSearchCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s));
     request.RequestParameters.DeserializationOverride = creator;
     return(LowLevelDispatch.MsearchDispatchAsync <MultiSearchResponse>(p, new SerializableData <IMultiSearchRequest>(p), c));
 }
     );
コード例 #14
0
 /// <inheritdoc />
 public Task <IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request)
 {
     return(this.Dispatcher.DispatchAsync <IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
                request,
                (p, d) =>
     {
         var converter = CreateMultiSearchDeserializer(p);
         var serializer = new NestSerializer(this.ConnectionSettings, converter);
         var json = serializer.SerializeToBytes(p).Utf8String();
         var creator = new MultiSearchCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s));
         request.RequestParameters.DeserializationOverride(creator);
         return this.LowLevelDispatch.MsearchDispatchAsync <MultiSearchResponse>(p, json);
     }
                ));
 }
コード例 #15
0
        private JsonConverter CreateMultiSearchConverter(IMultiSearchRequest descriptor)
        {
            if (descriptor.Operations != null)
            {
                foreach (var kv in descriptor.Operations)
                {
                    SearchPathInfo.CloseOverAutomagicCovariantResultSelector(this.Infer, kv.Value);
                }
            }


            var multiSearchConverter = new MultiSearchConverter(_connectionSettings, descriptor);

            return(multiSearchConverter);
        }
コード例 #16
0
		/// <inheritdoc />
		public Task<IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request)
		{
			return this.Dispatcher.DispatchAsync<IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
				request,
				(p, d) =>
				{
					var converter = CreateMultiSearchDeserializer(p);
					var serializer = new NestSerializer(this.ConnectionSettings, converter);
					var json = serializer.SerializeToBytes(p).Utf8String();
					var creator = new MultiSearchCreator((r, s) => serializer.Deserialize<MultiSearchResponse>(s));
					request.RequestParameters.DeserializationOverride(creator);
					return this.LowLevelDispatch.MsearchDispatchAsync<MultiSearchResponse>(p, json);
				}
			);
		}
コード例 #17
0
		/// <inheritdoc />
		public Task<IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request, CancellationToken cancellationToken = default(CancellationToken))
		{
			return this.Dispatcher.DispatchAsync<IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
				request,
				cancellationToken,
				(p, d, c) =>
				{
					var converter = CreateMultiSearchDeserializer(p);
					var serializer = this.ConnectionSettings.StatefulSerializer(converter);
					var creator = new MultiSearchCreator((r, s) => serializer.Deserialize<MultiSearchResponse>(s));
					request.RequestParameters.DeserializationOverride(creator);
					return this.LowLevelDispatch.MsearchDispatchAsync<MultiSearchResponse>(p, (object)p, c);
				}
			);
		}
コード例 #18
0
 /// <inheritdoc />
 public Task <IMultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(this.Dispatcher.DispatchAsync <IMultiSearchRequest, MultiSearchRequestParameters, MultiSearchResponse, IMultiSearchResponse>(
                request,
                cancellationToken,
                (p, d, c) =>
     {
         var converter = CreateMultiSearchDeserializer(p);
         var serializer = this.ConnectionSettings.StatefulSerializer(converter);
         var creator = new MultiSearchCreator((r, s) => serializer.Deserialize <MultiSearchResponse>(s));
         request.RequestParameters.DeserializationOverride(creator);
         return this.LowLevelDispatch.MsearchDispatchAsync <MultiSearchResponse>(p, (object)p, c);
     }
                ));
 }
コード例 #19
0
 public static void Update(ElasticsearchPathInfo <MultiSearchRequestParameters> pathInfo, IMultiSearchRequest request)
 {
     pathInfo.HttpMethod = PathInfoHttpMethod.POST;
 }
コード例 #20
0
 public MultiSearchResponseJsonConverter(IConnectionSettingsValues settings, IMultiSearchRequest request)
 {
     this._settings = settings;
     _request       = request;
 }
コード例 #21
0
 private JsonConverter CreateMultiSearchDeserializer(IMultiSearchRequest request)
 {
     return(new MultiSearchResponseJsonConverter(this.ConnectionSettings, request));
 }
コード例 #22
0
 private JsonConverter CreateMultiSearchDeserializer(IMultiSearchRequest request) =>
 new MultiSearchResponseJsonConverter(ConnectionSettings, request);
コード例 #23
0
 /// <inheritdoc />
 public MultiSearchResponse MultiSearch(IMultiSearchRequest request)
 {
     CreateMultiSearchConverter(request);
     return(DoRequest <IMultiSearchRequest, MultiSearchResponse>(request, request.RequestParameters));
 }
コード例 #24
0
 /// <inheritdoc />
 public Task <MultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request, CancellationToken ct = default)
 {
     CreateMultiSearchConverter(request);
     return(DoRequestAsync <IMultiSearchRequest, MultiSearchResponse>(request, request.RequestParameters, ct));
 }
コード例 #25
0
 public Task <MultiSearchResponse> MultiSearchAsync(IMultiSearchRequest request, CancellationToken ct = new CancellationToken())
 {
     throw new NotImplementedException();
 }
コード例 #26
0
 public MultiSearchResponse MultiSearch(IMultiSearchRequest request)
 {
     throw new NotImplementedException();
 }