Пример #1
0
        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);
        }
Пример #2
0
 public static void AddUpdateLuceneIndex(HotelDescriptionDTO hotelDescriptionDTO)
 {
     AddUpdateLuceneIndex(new List <HotelDescriptionDTO> {
         hotelDescriptionDTO
     });
 }