📄 indexfactory.java
字号:
package com.galaxyworkstation.model;
import java.io.IOException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.IndexSearcher;
/**
* 该类模拟了管理索引文件的工厂,并采用单一实例模式实现了对各种索引流的管理
* @author 李奕
* @version 1.0
*/
public class IndexFactory {
private static IndexReader cdIndexReader = null;
private static IndexReader discIndexReader = null;
private static IndexSearcher cdIndexSearcher = null;
private static IndexSearcher discIndexSearcher = null;
/***************IndexReader Factory****************/
/**
* 得到光盘索引文件的读出流
* @return 光盘索引文件的读出流
*/
public static IndexReader getCDIndexReader(){
if(cdIndexReader == null)
if(IndexReader.indexExists("cdindex"))
try {
cdIndexReader = IndexReader.open("cdindex");
}catch (IOException e) {
e.printStackTrace();
}
else return null;
return cdIndexReader;
}
/**
* 关闭光盘索引文件的读出流
* @return True 如果关闭成功
*/
public static boolean closeCDIndexReader(){
try {
if(cdIndexReader != null)
cdIndexReader.close();
cdIndexReader = null;
} catch (IOException e) {
cdIndexReader = null;
return false;
}
return true;
}
/**
* 得到硬盘索引文件的读出流
* @return 硬盘索引文件的读出流
*/
public static IndexReader getDiscIndexReader(){
if(discIndexReader == null)
if(IndexReader.indexExists("discindex"))
try {
discIndexReader = IndexReader.open("discindex");
}catch (IOException e) {
e.printStackTrace();
}
else return null;
return discIndexReader;
}
/**
* 关闭硬盘索引文件的读出流
* @return True 如果关闭成功
*/
public static boolean closeDiscIndexReader(){
try {
if(discIndexReader != null)
discIndexReader.close();
discIndexReader = null;
} catch (IOException e) {
discIndexReader = null;
return false;
}
return true;
}
/**************IndexSearcher Factory**************/
/**
* 得到光盘索引文件的搜索流
* @return 光盘索引文件的搜索流
*/
public static IndexSearcher getCDIndexSearcher(){
if(cdIndexSearcher == null)
cdIndexSearcher = new IndexSearcher(getCDIndexReader());
return cdIndexSearcher;
}
/**
* 关闭光盘索引文件的搜索流
* @return True 如果关闭成功
*/
public static boolean closeCDIndexSearcher(){
try {
if(cdIndexSearcher != null)
cdIndexSearcher.close();
cdIndexSearcher = null;
} catch (IOException e) {
cdIndexSearcher = null;
return false;
}
return true;
}
/**
* 得到硬盘索引文件的搜索流
* @return 硬盘索引文件的搜索流
*/
public static IndexSearcher getDiscIndexSearcher(){
if(discIndexSearcher == null)
discIndexSearcher = new IndexSearcher(getDiscIndexReader());
return discIndexSearcher;
}
/**
* 关闭硬盘索引文件的搜索流
* @return True 如果关闭成功
*/
public static boolean closeDiscIndexSearcher(){
try {
if(discIndexSearcher != null)
discIndexSearcher.close();
discIndexSearcher = null;
} catch (IOException e) {
discIndexSearcher = null;
return false;
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -