예제 #1
0
        /// <summary>
        /// 删除Books表信息时 添加删除索引请求至队列
        /// </summary>
        /// <param name="bid"></param>
        public void Del(int bid)
        {
            BookViewMode bvm = new BookViewMode();

            bvm.Id = bid;
            bvm.IT = IndexType.Delete;
            bookQueue.Enqueue(bvm);
        }
예제 #2
0
 /// <summary>
 /// 修改Books表信息时 添加修改索引(实质上是先删除原有索引 再新增修改后索引)请求至队列
 /// </summary>
 /// <param name="books"></param>
 public void Mod(Books books) {
     BookViewMode bvm = new BookViewMode();
     bvm.Id = books.Id;
     bvm.Title = books.Title;
     bvm.IT = IndexType.Modify;
     bvm.Content = books.ContentDescription;
     bookQueue.Enqueue(bvm);
 }
예제 #3
0
        /// <summary>
        /// 修改Books表信息时 添加修改索引(实质上是先删除原有索引 再新增修改后索引)请求至队列
        /// </summary>
        /// <param name="books"></param>
        public void Mod(Books books)
        {
            BookViewMode bvm = new BookViewMode();

            bvm.Id      = books.Id;
            bvm.Title   = books.Title;
            bvm.IT      = IndexType.Modify;
            bvm.Content = books.ContentDescription;
            bookQueue.Enqueue(bvm);
        }
예제 #4
0
        /// <summary>
        /// 修改Books表信息时 添加修改索引(实质上是先删除原有索引 再新增修改后索引)请求至队列
        /// </summary>
        /// <param name="books"></param>
        public void Mod(Books books)
        {
            BookViewMode bvm = new BookViewMode();

            bvm.Id           = books.Id;
            bvm.Description  = books.Description;
            bvm.MenuId       = books.MenuId;
            bvm.IT           = IndexType.Modify;
            bvm.CreativeHTML = books.CreativeHTML;
            bookQueue.Enqueue(bvm);
        }
예제 #5
0
        /// <summary>
        /// 更新索引库操作
        /// </summary>
        private void CRUDIndex()
        {
            FSDirectory directory = FSDirectory.Open(new DirectoryInfo(indexPath), new NativeFSLockFactory());
            bool        isExist   = IndexReader.IndexExists(directory);

            if (isExist)
            {
                if (IndexWriter.IsLocked(directory))
                {
                    IndexWriter.Unlock(directory);
                }
            }
            IndexWriter writer = new IndexWriter(directory, new PanGuAnalyzer(), !isExist, IndexWriter.MaxFieldLength.UNLIMITED);

            while (bookQueue.Count > 0)
            {
                Document     document = new Document();
                BookViewMode book     = bookQueue.Dequeue();
                if (book.IT == IndexType.Insert)
                {
                    document.Add(new Field("id", book.Id.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
                    document.Add(new Field("MenuId", book.MenuId.ToString(), Field.Store.YES, Field.Index.ANALYZED));
                    document.Add(new Field("Description", book.Description, Field.Store.YES, Field.Index.ANALYZED,
                                           Field.TermVector.WITH_POSITIONS_OFFSETS));
                    document.Add(new Field("CreativeHTML", book.CreativeHTML, Field.Store.YES, Field.Index.ANALYZED,
                                           Field.TermVector.WITH_POSITIONS_OFFSETS));
                    writer.AddDocument(document);
                }
                else if (book.IT == IndexType.Delete)
                {
                    writer.DeleteDocuments(new Term("id", book.Id.ToString()));
                }
                else if (book.IT == IndexType.Modify)
                {
                    //先删除 再新增
                    writer.DeleteDocuments(new Term("id", book.Id.ToString()));
                    document.Add(new Field("id", book.Id.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
                    document.Add(new Field("MenuId", book.MenuId.ToString(), Field.Store.YES, Field.Index.ANALYZED));
                    document.Add(new Field("Description", book.Description, Field.Store.YES, Field.Index.ANALYZED,
                                           Field.TermVector.WITH_POSITIONS_OFFSETS));
                    document.Add(new Field("CreativeHTML", book.CreativeHTML, Field.Store.YES, Field.Index.ANALYZED,
                                           Field.TermVector.WITH_POSITIONS_OFFSETS));
                    writer.AddDocument(document);
                }
            }
            writer.Close();
            directory.Close();
        }
예제 #6
0
 /// <summary>
 /// 删除Books表信息时 添加删除索引请求至队列
 /// </summary>
 /// <param name="bid"></param>
 public void Del(int bid) {
     BookViewMode bvm = new BookViewMode();
     bvm.Id = bid;
     bvm.IT = IndexType.Delete;
     bookQueue.Enqueue(bvm);
 }