示例#1
0
        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);
        }
示例#2
0
 public static void AddUpdateLuceneIndex(LucenePostModel PostData)
 {
     AddUpdateLuceneIndex(new List <LucenePostModel> {
         PostData
     });
 }