예제 #1
0
        /// <summary>
        /// Creates an Index in Azure Search
        /// </summary>
        /// <returns></returns>
        public async Task CreateIndex()
        {
            // check to see if index exists.  If not, then create it.
            var result = await managementClient.GetIndexAsync(Index);

            if (!result.IsSuccess)
            {
                result = await managementClient.CreateIndexAsync(new Index(Index)
                                                                 .WithStringField("Id", f => f.IsKey().IsRetrievable())
                                                                 .WithStringField("Title", f => f.IsRetrievable().IsSearchable())
                                                                 .WithStringField("Content", f => f.IsSearchable().IsRetrievable())
                                                                 .WithStringField("Excerpt", f => f.IsRetrievable())
                                                                 .WithDateTimeField("CreateDate", f => f.IsRetrievable().IsSortable().IsFilterable().IsFacetable())
                                                                 .WithDateTimeField("ModifiedDate", f => f.IsRetrievable().IsSortable().IsFilterable().IsFacetable())
                                                                 .WithStringField("CreateDateAsString", f => f.IsSearchable().IsRetrievable().IsFilterable())
                                                                 .WithStringField("ModifiedDateAsString", f => f.IsSearchable().IsRetrievable().IsFilterable())
                                                                 .WithStringField("Author", f => f.IsSearchable().IsRetrievable().IsFilterable())
                                                                 .WithStringField("Categories", f => f.IsSearchable().IsRetrievable())
                                                                 .WithStringField("Tags", f => f.IsSearchable().IsRetrievable())
                                                                 .WithStringField("Slug", f => f.IsRetrievable())
                                                                 .WithIntegerField("CommentCount", f => f.IsRetrievable())
                                                                 .WithStringField("CommentContent", f => f.IsSearchable().IsRetrievable())


                                                                 );

                if (!result.IsSuccess)
                {
                    Console.Out.WriteLine(result.Error.Message);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// POST api/indexes
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public async Task <HttpResponseMessage> Post(Index index)
        {
            var result = await _managementClient.CreateIndexAsync(index);

            if (!result.IsSuccess)
            {
                return(Request.CreateResponse(result.StatusCode, result));
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
        public override void Execute(ApiConnection db)
        {
            var client = new IndexManagementClient(db);
            var result = client.CreateIndexAsync(new Index("plopindex")
                                                 .WithStringField("Id", f => f
                                                                  .IsKey()
                                                                  .IsRetrievable())
                                                 .WithStringField("PlopField", f => f
                                                                  .IsSearchable()
                                                                  .IsRetrievable())
                                                 .WithStringField("AddedField", f => f
                                                                  .IsSearchable()
                                                                  .IsRetrievable())
                                                 .WithDateTimeField("SomeTime", f => f
                                                                    .IsRetrievable())).Result;

            if (!result.IsSuccess)
            {
                throw new ApplicationException("Could not create plopindex index: " + result.Error.Message);
            }
        }
        /// <summary>
        /// Task is executed automatically in a transaction
        /// </summary>
        /// <param name="db"/>
        public override void Execute(ApiConnection db)
        {
            var client = new IndexManagementClient(db);
            var result = client.CreateIndexAsync(new Index("automaticmigration")
                                                 .WithStringField("Id", f => f
                                                                  .IsKey()
                                                                  .IsRetrievable())
                                                 .WithStringField("SchemaName", f => f
                                                                  .IsSearchable()
                                                                  .IsRetrievable())
                                                 .WithStringField("Version", f => f
                                                                  .IsRetrievable())
                                                 .WithDateTimeField("TimeOfUpdate", f => f
                                                                    .IsRetrievable()
                                                                    .IsSortable())).Result;

            if (!result.IsSuccess)
            {
                throw new ApplicationException("Could not create automaticmigration index: " + result.Error.Message);
            }
        }