⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indexbuider.java

📁 模拟的土豆网视频网站
💻 JAVA
字号:
package cn.myvideosite.searcher.index;

import java.io.IOException;

import java.util.Iterator;
import java.util.List;

import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.LockObtainFailedException;

import cn.myvideosite.commons.Constant;
import cn.myvideosite.data.model.bean.AlbumInfo;
import cn.myvideosite.data.model.bean.VideoInformation;
import cn.myvideosite.data.model.services.AlbumInfoService;
import cn.myvideosite.data.model.services.VideoInfoService;


public class IndexBuider {

	/*public static String Str(String str){
		if(str !=null && !str.equals("")) return str;
		else return "";		
	}	*/		
	/**
	 * @param args  使用Lunece 创建索引
	 */
	public static void main(String[] args) {


		try {
//------------------------------------------创建视频索引start----------------------------------------------------// 
			IndexWriter writer = new IndexWriter(Constant.LUNECE_INDEX_VIDEO,Constant.PAODING_ANALYZER,true);
			int end = 1413218; //去数据库 查询数据
			int i=0;
			int max = 10000;  // 每次1000条
			while(i<=end){
				List<?> list = VideoInfoService.findAll(i, max);
				i += max;
				if(list != null && !list.isEmpty()){
					for(Iterator<?> it = list.iterator();it.hasNext();){
						
					    VideoInformation video =(VideoInformation)it.next();
						Document doc = new Document();
						//增加查询字段   store 是否保存  index 是否作为搜索条件
						if(video.getVideoTitle() != null && !video.getVideoTitle().equals("")){
							doc.add(new Field("videoId",Integer.toString(video.getVideoId()),Field.Store.YES,Field.Index.UN_TOKENIZED));							
							doc.add(new Field("title",video.getVideoTitle(),Field.Store.YES,Field.Index.TOKENIZED));
				
							if(video.getIntroduction() != null && !video.getIntroduction().equals(""))
							      doc.add(new Field("introduction",video.getIntroduction(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else
								  doc.add(new Field("introduction","",Field.Store.YES,Field.Index.UN_TOKENIZED));  
							
							if(video.getFlashAddress() != null && !video.getFlashAddress().equals(""))
							      doc.add(new Field("flashAddress",video.getFlashAddress(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else
								  doc.add(new Field("flashAddress","",Field.Store.YES,Field.Index.UN_TOKENIZED));
							
							if(video.getSoureUrl() != null && !video.getSoureUrl().equals(""))
							      doc.add(new Field("soureUrl",video.getSoureUrl(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else
								  doc.add(new Field("soureUrl","",Field.Store.YES,Field.Index.UN_TOKENIZED));
							
							if(video.getNewUrl() != null && !video.getNewUrl().equals(""))
							     doc.add(new Field("newUrl",video.getNewUrl(),Field.Store.YES,Field.Index.UN_TOKENIZED));	
							else
								 doc.add(new Field("newUrl","",Field.Store.YES,Field.Index.UN_TOKENIZED));
						
							writer.addDocument(doc);
							System.out.println(video);
						}						
					
					}
				}				
			}
			writer.optimize();
			writer.close();
		} catch (CorruptIndexException e) {			
			e.printStackTrace();
		} catch (LockObtainFailedException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}
//------------------------------------创建视频索引end--------------------------------------------------// 
		
//------------------------------------创建专辑索引start--------------------------------------------------// 		
		try {
			IndexWriter writer = new IndexWriter(Constant.LUNECE_INDEX_ALBUM,Constant.PAODING_ANALYZER,true);
			int end = 29644;
			int i=0;
			int max = 10000;  // 每次1000条
			while(i<=end){
				List<?> list = AlbumInfoService.findAll(i, max);
				i += max;
				if(list != null && !list.isEmpty()){
					for(Iterator<?> it = list.iterator();it.hasNext();){					   
						AlbumInfo album =(AlbumInfo)it.next();
						Document doc = new Document();
						//增加查询字段   store 是否保存  index 是否作为搜索条件
						if(album.getAlbumTitle() != null && !album.getAlbumTitle().equals("")){
							doc.add(new Field("albumId",Integer.toString(album.getAlbumId()),Field.Store.YES,Field.Index.UN_TOKENIZED));
							doc.add(new Field("title",album.getAlbumTitle(),Field.Store.YES,Field.Index.TOKENIZED));
														
							if(album.getAlbumIntro() !=null && !album.getAlbumIntro().equals(""))
							      doc.add(new Field("albumIntro",album.getAlbumIntro(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else
								  doc.add(new Field("albumIntro","",Field.Store.YES,Field.Index.UN_TOKENIZED));
							
							if(album.getAlbumAddr() != null && !album.getAlbumAddr().equals(""))
							      doc.add(new Field("albumAddr",album.getAlbumAddr(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else
								  doc.add(new Field("albumAddr","",Field.Store.YES,Field.Index.UN_TOKENIZED));
							
							if(Integer.toString(album.getVideoNub()) != null && !Integer.toString(album.getVideoNub()).equals(""))
							      doc.add(new Field("videoNub",Integer.toString(album.getVideoNub()),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else 
								  doc.add(new Field("videoNub","",Field.Store.YES,Field.Index.UN_TOKENIZED));
							//doc.add(new Field("createTime",album.getCreateTime(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							if(album.getImageUrl() != null && !album.getImageUrl().equals(""))
							      doc.add(new Field("imageUrl",album.getImageUrl(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else 
								  doc.add(new Field("imageUrl","",Field.Store.YES,Field.Index.UN_TOKENIZED));
							
							if(album.getFlashUrl() != null && !album.getFlashUrl().equals(""))
							      doc.add(new Field("flashUrl",album.getFlashUrl(),Field.Store.YES,Field.Index.UN_TOKENIZED));
							else 
								  doc.add(new Field("flashUrl","",Field.Store.YES,Field.Index.UN_TOKENIZED));
							//doc.add(new Field("albumTypeId",Integer.toString(album.getAlbumTypeId()),Field.Store.YES,Field.Index.UN_TOKENIZED));
							
							writer.addDocument(doc);
							System.out.println(album);
						}						
						
					}
				}				
			}
			writer.optimize();
			writer.close();
		} catch (CorruptIndexException e) {			
			e.printStackTrace();
		} catch (LockObtainFailedException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -