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

📄 searcherservice.java

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

import java.io.IOException;
//import java.util.Iterator;

import org.apache.lucene.document.Document;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Searcher;
import org.apache.lucene.search.Sort;

import cn.myvideosite.commons.Constant;


public class SearcherService {
	private static Searcher searcher = null;
	private static Searcher searcherAlbum = null;
	private static QueryParser parser = null;
	
	static {
		init(); 
	}
	private static void init(){
		try {
			searcher = new IndexSearcher(Constant.LUNECE_INDEX_VIDEO);
			searcherAlbum = new IndexSearcher(Constant.LUNECE_INDEX_ALBUM);
		    parser = new QueryParser("title",Constant.PAODING_ANALYZER);
		    
		} catch (CorruptIndexException e) {		
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}		
	}
	
	/**
	 * 
	 * @param keyWord  依据输入的条件 去查询视频数据
	 * @return
	 * @throws ParseException   
	 * @throws IOException
	 */
	public static  Hits findAll(String keyWord) throws ParseException, IOException{
		Query query = parser.parse(keyWord);		
		return searcher.search(query,new Sort("videoId",false));  //sort 排序  		
	}	
	/**
	 * 
	 * @param keyWord
	 * @return
	 * @throws ParseException  依据输入的条件 去查询专辑数据
	 * @throws IOException
	 */
	public static  Hits findAlbumAll(String keyWord) throws ParseException, IOException{
		Query query = parser.parse(keyWord);		
		return searcherAlbum.search(query,new Sort("albumId",false));  //sort 排序  		new Sort("albumId",false)
	}	
	/**
	 * @param args    实例 
	 */
	public static void main(String[] args) {
		String keyWord = "睡觉";  //例子
		try {
			
			Query query = parser.parse(keyWord);
			Hits hits = searcher.search(query);
			
			if(hits != null && hits.length()>0){
				/*for(Iterator<?> it = hits.iterator();it.hasNext();){
					Document doc = (Document) it.next();
					System.out.println("videoId = "+doc.get("videoId")+"......");
				}*/
				for(int i=0;i<hits.length();i++){
					Document doc = (Document) hits.doc(i);
					System.out.println("videoId = "+doc.get("videoId")+", title = " + doc.get("title")+
						", introduction = " + doc.get("introduction")+",flashAddress = " + doc.get("flashAddress"));														
				}
			}
			
		} catch (CorruptIndexException e) {		
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		} catch (ParseException e) {		
			e.printStackTrace();
		}
	}

}

⌨️ 快捷键说明

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