public static IndexOperation ToIndexOperation(this SearchIndexItem item) { var op = new IndexOperation(IndexOperationType.Upload, "id", item.Id.ToString(CultureInfo.InvariantCulture)) .WithProperty("title", item.Title) .WithProperty("projectid", item.ProjectId.ToString(CultureInfo.InvariantCulture)) .WithProperty("status", item.Status) .WithProperty("lastupdatedate", item.LastUpdateDate) .WithProperty("details", item.Details) .WithProperty("tags", item.Tags) .WithProperty("events", item.Events); return(op); }
private void UpdateIndexForItem(SearchIndexItem item) { TdIndexWriter.UpdateDocument( new Term("id", item.Id.ToString(CultureInfo.InvariantCulture)), item.ToLuceneDocument()); }
public static void IndexDocument([QueueTrigger("ticket-search-queue")] SearchIndexItem document) { var task = Program.SearchProvider.SendItemsToIndexAsync(new[] { document }); task.Wait(); }
public static Document ToLuceneDocument(this SearchIndexItem item) { var eventText = item.Events != null && item.Events.Any() ? string.Join(" ", item.Events) : string.Empty; var tagList = item.Tags != null && item.Tags.Any() ? string.Join(" ", item.Tags) : string.Empty; var id = new Field( "id", item.Id.ToString(CultureInfo.InvariantCulture), Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO) { Boost = 3F }; var projectid = new Field( "projectid", item.ProjectId.ToString(CultureInfo.InvariantCulture), Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO) { Boost = 0F }; var title = new Field( "title", item.Title ?? string.Empty, Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.YES) { Boost = 2F }; var status = new Field( "status", item.Title ?? string.Empty, Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO); var lastupdatedate = new Field( "status", DateTools.DateToString(item.LastUpdateDate.DateTime, DateTools.Resolution.SECOND), Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO ); var details = new Field( "details", item.Details ?? string.Empty, Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.YES); var tags = new Field( "tags", tagList, Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO) { Boost = 2.5F }; var events = new Field( "events", eventText, Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.YES) { Boost = 0.75F }; var doc = new Document(); doc.Add(id); doc.Add(projectid); doc.Add(title); doc.Add(status); doc.Add(lastupdatedate); doc.Add(details); doc.Add(tags); doc.Add(events); return(doc); }