/// <summary>
        /// C and U operations for Document
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="request"></param>
        /// <returns></returns>
        public DocumentResponse IndexDocument <T>(IndexDocRequest <T> request)
        {
            string documentUrl = RESTfulESUrlBuilder.Init().Document(request.DocumentId).Type(request.Type).Index(request.Index).Host(clusterName)
                                 .Url();

            return(restServiceClient.Post <T, DocumentResponse>(documentUrl, request.DocumentEntity));
        }
        /// <summary>
        /// R operation fro Document
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="request"></param>
        /// <returns></returns>
        public GetResponse <T> GetDocument <T>(GetDocRequest request)
        {
            string getUrl = RESTfulESUrlBuilder.Init().Document(request.DocumentId).Type(request.Type).Index(request.Index).Host(clusterName)
                            .Url();

            return(restServiceClient.Get <GetResponse <T> >(getUrl));
        }
        private string BuildDeleteUrl(DeleteRequest request)
        {
            if (!string.IsNullOrEmpty(request.DocumentId))
            {
                return(RESTfulESUrlBuilder.Init()
                       .Document(request.DocumentId)
                       .Type(request.TypeName)
                       .Index(request.IndexName)
                       .Host(clusterName)
                       .Url());
            }

            if (!string.IsNullOrEmpty(request.TypeName))
            {
                return(RESTfulESUrlBuilder.Init()
                       .Type(request.TypeName)
                       .Index(request.IndexName)
                       .Host(clusterName)
                       .Url());
            }

            return(RESTfulESUrlBuilder.Init()
                   .Index(request.IndexName)
                   .Host(clusterName)
                   .Url());
        }
        /// <summary>
        /// G get mapping
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public string GetMapping(MappingRequest request)
        {
            string mappingUrl = RESTfulESUrlBuilder.Init().Mapping().Type(request.Type).Index(request.Indexes).Host(clusterName)
                                .Url();

            return(restServiceClient.Get <string>(mappingUrl));
        }
        /// <summary>
        /// Create index with settings
        /// </summary>
        /// <param name="index"></param>
        /// <param name="indexSetting"></param>
        /// <returns></returns>
        public BaseResponse Index(string index, IndexSetting indexSetting)
        {
            string indexUrl = RESTfulESUrlBuilder.Init().Index(index).Host(clusterName).Url();
            var    settings = new IndexSettingWrapper(indexSetting);

            return(restServiceClient.Post <IndexSettingWrapper, BaseResponse>(indexUrl, settings));
        }
        /// <summary>
        /// Partial Update Doc
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public BaseResponse UpdateDocument(UpdateDocRequest request)
        {
            string updateUrl = RESTfulESUrlBuilder.Init().Update().Document(request.DocumentId).Type(request.Type).Index(request.Index).Host(clusterName)
                               .Url();

            return(restServiceClient.Post <UpdateDocRequest, BaseResponse>(updateUrl, request));
        }
        /// <summary>
        /// C/U create mapping
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public BaseResponse Mapping(MappingRequest request)
        {
            string mappingUrl = RESTfulESUrlBuilder.Init().Mapping().Type(request.Type).Index(request.Indexes).Host(clusterName)
                                .Url();

            return(restServiceClient.Put <MappingRequest, BaseResponse>(mappingUrl, request));
        }
Esempio n. 8
0
        public IActionResult Execute <T>()
        {
            string searchUrl = RESTfulESUrlBuilder.Init().Search().Type(searchRequest.Types).Index(searchRequest.Indexes).Host().Url();

            logger.Info("Search Url: " + searchUrl);
            SearchActionResult <T> result = restServiceClient.Post <SearchRequest, SearchActionResult <T> >(searchUrl, searchRequest);

            return(result);
        }
        /// <summary>
        /// Update index replica number
        /// </summary>
        /// <param name="index"></param>
        /// <param name="numOfReplica"></param>
        /// <returns></returns>
        public BaseResponse UpdateIndex(string index, int numOfReplica)
        {
            string indexUrl = RESTfulESUrlBuilder.Init().UpdateSetting().Host(clusterName).Url();
            string jsonData = JsonBuilder.Init()
                              .StartObject()
                              .BuildPropertyName("index")
                              .StartObject()
                              .BuildPropertyName("number_of_replicas")
                              .BuildValue(numOfReplica)
                              .EndObject()
                              .EndObject()
                              .GetJson();

            return(restServiceClient.Put <string, BaseResponse>(indexUrl, jsonData));
        }
        /// <summary>
        /// Bulk index
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public BaseResponse BulkIndex(BulkRequest request)
        {
            string bulkUrl = RESTfulESUrlBuilder.Init().Bulk().Host(clusterName).Url();

            return(restServiceClient.Post <BulkRequest, BaseResponse>(bulkUrl, request));
        }
        public void DocumentTest()
        {
            string documentUrl = RESTfulESUrlBuilder.Init().Document("doc").Type("type").Index("index").Host().Url();

            Assert.AreEqual(documentUrl, "localhost:9200/index/type/doc");
        }
        public void UpdateTest()
        {
            string updateUrl = RESTfulESUrlBuilder.Init().Update().Type("type").Index("index").Host().Url();

            Assert.AreEqual(updateUrl, "localhost:9200/index/type/_update");
        }
        public void MappingTest()
        {
            string mappingUrl = RESTfulESUrlBuilder.Init().Mapping().Type("type").Index("index").Host().Url();

            Assert.AreEqual(mappingUrl, "localhost:9200/index/type/_mapping");
        }
        public void SearchTest()
        {
            string searchUrl = RESTfulESUrlBuilder.Init().Search().Type("Type").Index("Index").Host().Url();

            Assert.AreEqual(searchUrl, "localhost:9200/Index/Type/_search");
        }
        /// <summary>
        /// Optimize Indexes
        /// </summary>
        /// <param name="indexes"></param>
        /// <returns></returns>
        public BaseResponse Optimize(string[] indexes)
        {
            string optimizeUrl = RESTfulESUrlBuilder.Init().Optimize().Index(indexes).Host(clusterName).Url();

            return(restServiceClient.Get <BaseResponse>(optimizeUrl));
        }
        /// <summary>
        /// Close Index
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public BaseResponse CloseIndex(string index)
        {
            string indexUrl = RESTfulESUrlBuilder.Init().CloseIndex().Index(index).Host(clusterName).Url();

            return(restServiceClient.Post <string, BaseResponse>(indexUrl, string.Empty));
        }
        /// <summary>
        /// Flush indexes data to storage and free memory
        /// </summary>
        /// <param name="indexes"></param>
        /// <returns></returns>
        public BaseResponse Flush(string[] indexes)
        {
            string flushUrl = RESTfulESUrlBuilder.Init().Flush().Index(indexes).Host(clusterName).Url();

            return(restServiceClient.Get <BaseResponse>(flushUrl));
        }
        /// <summary>
        /// Get index status
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public string Status(string index)
        {
            string statusUrl = RESTfulESUrlBuilder.Init().Status().Index(index).Host(clusterName).Url();

            return(restServiceClient.Get <string>(statusUrl));
        }