public void Update(UserSearchItem record) { var document = MapToDocument(record); using (var analyzer = new StandardAnalyzer(_luceneVersion)) { using (var writer = new IndexWriter(Directory, analyzer, false, IndexWriter.MaxFieldLength.UNLIMITED)) { writer.UpdateDocument(new Term(UserSearchFields.UserId, record.UserId.ToString()), document); } } }
public Document MapToDocument(UserSearchItem record, Document document = null) { if (document == null) { document = new Document(); } document.Add(new Field(UserSearchFields.UserId, record.UserId.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); document.Add(new Field(UserSearchFields.FirstName, record.FirstName.ToLower(), Field.Store.YES, Field.Index.NOT_ANALYZED)); document.Add(new Field(UserSearchFields.LastName, record.LastName.ToLower(), Field.Store.YES, Field.Index.NOT_ANALYZED)); return(document); }
private UserSearchItem MapHitToQueryResult(ScoreDoc doc, IndexSearcher searcher) { var document = searcher.Doc(doc.Doc); var result = new UserSearchItem { UserId = Int32.Parse(document.Get(UserSearchFields.UserId)), FirstName = document.Get(UserSearchFields.FirstName), LastName = document.Get(UserSearchFields.LastName) }; return(result); }