예제 #1
0
        /// <summary>
        /// Add a new mapping using the first rootObjectMapping parameter as the base to construct the new mapping.
        /// Handy if you wish to reuse a mapping.
        /// </summary>
        public CreateIndexDescriptor AddMapping <T>(RootObjectMapping rootObjectMapping, Func <PutMappingDescriptor <T>, PutMappingDescriptor <T> > typeMappingDescriptor) where T : class
        {
            typeMappingDescriptor.ThrowIfNull("typeMappingDescriptor");

            var selectorIn = new PutMappingDescriptor <T>(this._connectionSettings);
            IPutMappingRequest selectorInRequest = selectorIn;

            selectorInRequest.Mapping = rootObjectMapping;

            var d = typeMappingDescriptor(selectorIn);
            IPutMappingRequest request = d;
            var typeMapping            = request.Mapping;

            if (request.Type != null)
            {
                typeMapping.Name = request.Type.Name != null ? (PropertyNameMarker)request.Type.Name : request.Type.Type;
            }
            else
            {
                typeMapping.Name = typeof(T);
            }

            this._indexSettings.Mappings.Add(typeMapping);

            return(this);
        }
예제 #2
0
 /// <inheritdoc />
 public Task <IIndicesResponse> MapAsync(IPutMappingRequest putMappingRequest)
 {
     return(this.DispatchAsync <IPutMappingRequest, PutMappingRequestParameters, IndicesResponse, IIndicesResponse>(
                putMappingRequest,
                (p, d) =>
     {
         var o = new Dictionary <string, RootObjectMapping>
         {
             { p.Type, d.Mapping }
         };
         return this.RawDispatch.IndicesPutMappingDispatchAsync <IndicesResponse>(p, o);
     }
                ));
 }
예제 #3
0
        public PutTemplateDescriptor AddMapping <T>(Func <PutMappingDescriptor <T>, PutMappingDescriptor <T> > mappingSelector)
            where T : class
        {
            mappingSelector.ThrowIfNull("mappingSelector");
            var putMappingDescriptor = mappingSelector(new PutMappingDescriptor <T>(this._connectionSettings));

            putMappingDescriptor.ThrowIfNull("rootObjectMappingDescriptor");

            var inferrer = new ElasticInferrer(this._connectionSettings);
            IPutMappingRequest request = putMappingDescriptor;
            var typeName = inferrer.TypeName(request.Type ?? typeof(T));

            if (typeName == null)
            {
                return(this);
            }
            Self.TemplateMapping.Mappings[typeName] = request.Mapping;
            return(this);
        }
예제 #4
0
 /// <inheritdoc />
 public Task <PutMappingResponse> MapAsync(IPutMappingRequest request, CancellationToken ct = default) =>
 DoRequestAsync <IPutMappingRequest, PutMappingResponse>(request, request.RequestParameters, ct);
예제 #5
0
 /// <inheritdoc />
 public PutMappingResponse Map(IPutMappingRequest request) =>
 DoRequest <IPutMappingRequest, PutMappingResponse>(request, request.RequestParameters);
 public Task <PutMappingResponse> MapAsync(IPutMappingRequest request, CancellationToken ct = new CancellationToken())
 {
     throw new NotImplementedException();
 }
 public PutMappingResponse Map(IPutMappingRequest request)
 {
     throw new NotImplementedException();
 }
 public static void Update(ElasticsearchPathInfo <PutMappingRequestParameters> pathInfo, IPutMappingRequest request)
 {
     pathInfo.HttpMethod = PathInfoHttpMethod.PUT;
 }
예제 #9
0
 /// <inheritdoc />
 public Task <IPutMappingResponse> MapAsync(IPutMappingRequest request, CancellationToken cancellationToken = default(CancellationToken)) =>
 Dispatcher.DispatchAsync <IPutMappingRequest, PutMappingRequestParameters, PutMappingResponse, IPutMappingResponse>(
     request,
     cancellationToken,
     LowLevelDispatch.IndicesPutMappingDispatchAsync <PutMappingResponse>
     );
예제 #10
0
 /// <inheritdoc />
 public IPutMappingResponse Map(IPutMappingRequest request) =>
 Dispatcher.Dispatch <IPutMappingRequest, PutMappingRequestParameters, PutMappingResponse>(
     request,
     LowLevelDispatch.IndicesPutMappingDispatch <PutMappingResponse>
     );
예제 #11
0
 /// <inheritdoc/>
 public Task <IPutMappingResponse> MapAsync(IPutMappingRequest request) =>
 this.Dispatcher.DispatchAsync <IPutMappingRequest, PutMappingRequestParameters, PutMappingResponse, IPutMappingResponse>(
     request,
     this.LowLevelDispatch.IndicesPutMappingDispatchAsync <PutMappingResponse>
     );
예제 #12
0
 /// <inheritdoc/>
 public IIndicesResponse Map(IPutMappingRequest request) =>
 this.Dispatcher.Dispatch <IPutMappingRequest, PutMappingRequestParameters, IndicesResponse>(
     request,
     this.LowLevelDispatch.IndicesPutMappingDispatch <IndicesResponse>
     );