public static IndexOperation ToIndexOperation(this SearchQueueItem item) { var op = new IndexOperation(IndexOperationType.Upload, "id", item.Id.ToString(CultureInfo.InvariantCulture)) .WithProperty("title", item.Title) .WithProperty("status", item.Status) .WithProperty("lastupdatedate", item.LastUpdateDate) .WithProperty("details", item.Details) .WithProperty("tags", item.Tags) .WithProperty("events", item.Events); return(op); }
public static Document ToLuceneDocument(this SearchQueueItem item) { var eventText = string.Join(" ", item.Events); var tagList = string.Join(" ", item.Tags); var id = new Field( "id", item.Id.ToString(CultureInfo.InvariantCulture), Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO) { Boost = 3F }; 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(title); doc.Add(status); doc.Add(lastupdatedate); doc.Add(details); doc.Add(tags); doc.Add(events); return(doc); }
private static void UpdateIndexForItem(IndexWriter indexWriter, SearchQueueItem item) { indexWriter.UpdateDocument( new Term("id", item.Id.ToString(CultureInfo.InvariantCulture)), item.ToLuceneDocument()); }