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