📄 searcherservice.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 + -