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