private static void _addToLuceneIndex(HotelDescriptionDTO hotelDescriptionDTO, IndexWriter writer) { // remove older index entry var searchQuery = new TermQuery(new Term("Id", hotelDescriptionDTO.Id.ToString())); writer.DeleteDocuments(searchQuery); // add new index entry var doc = new Document(); if (hotelDescriptionDTO.MinPrice == 0) { return; } doc.Add(new Field("MinPrice", hotelDescriptionDTO.MinPrice.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); // add lucene fields mapped to db fields doc.Add(new Field("Id", hotelDescriptionDTO.Id.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field("HotelName", hotelDescriptionDTO.HotelName, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("HotelCityCode", hotelDescriptionDTO.HotelCityCode.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field("AreaID", hotelDescriptionDTO.AreaID.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field("AddressLine", hotelDescriptionDTO.AddressLine, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("Description", hotelDescriptionDTO.Description, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("DescriptionText", hotelDescriptionDTO.DescriptionText, Field.Store.YES, Field.Index.ANALYZED)); if (hotelDescriptionDTO.Url == null) { hotelDescriptionDTO.Url = string.Empty; } doc.Add(new Field("Url", hotelDescriptionDTO.Url, Field.Store.YES, Field.Index.ANALYZED)); // add entry to index writer.AddDocument(doc); }
public static void AddUpdateLuceneIndex(HotelDescriptionDTO hotelDescriptionDTO) { AddUpdateLuceneIndex(new List <HotelDescriptionDTO> { hotelDescriptionDTO }); }