/// <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); } } }
/// <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); } }