private static void _addToLuceneIndex(LucenePageModel PageData, IndexWriter writer) { // remove older index entry var searchQuery = new TermQuery(new Term("PageId", PageData.PageId.ToString(CultureInfo.InvariantCulture))); writer.DeleteDocuments(searchQuery); // add new index entry var PageDocument = new Document(); // add lucene fields mapped to db fields PageDocument.Add(new Field("PageId", PageData.PageId.ToString(CultureInfo.InvariantCulture), Field.Store.YES, Field.Index.NOT_ANALYZED)); if (PageData.Title != null) { PageDocument.Add(new Field("Title", PageData.Title, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); } if (PageData.Body != null) { PageDocument.Add(new Field("Body", PageData.Body, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS) { Boost = 3 }); } if (PageData.Keywords != null) { PageDocument.Add(new Field("Keywords", PageData.Keywords, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); } if (PageData.SubTitle != null) { PageDocument.Add(new Field("SubTitle", PageData.SubTitle, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); } if (PageData.Description != null) { PageDocument.Add(new Field("Description", PageData.Description, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); } // add entry to index writer.AddDocument(PageDocument); }
public static void AddUpdateLuceneIndex(LucenePageModel PageData) { AddUpdateLuceneIndex(new List <LucenePageModel> { PageData }); }