📄 searchutils.java
字号:
/*
* Created on 2007-5-27
* Last modified on 2007-5-27
* Powered by GamVan.com
*/
package com.yeqiangwei.club.service.search;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
public class SearchUtils {
private static Logger logger = Logger.getLogger(SearchUtils.class);
public static Directory getDirectory(File file) throws IOException{
return FSDirectory.getDirectory(file, false);
}
public static Directory getDirectory(String path) throws IOException{
return FSDirectory.getDirectory(path, false);
}
public static IndexWriter getIndexWriter(String indexfolder, boolean create) throws IOException{
return new IndexWriter(indexfolder, AnalyzerFactory.getAnalyzer(), create);
}
public static IndexWriter getIndexWriter(String indexfolder) throws IOException{
return new IndexWriter(indexfolder, AnalyzerFactory.getAnalyzer(), false);
}
public static final Field Text(String name, String value){
return new Field(name,value
, Field.Store.YES, Field.Index.TOKENIZED
, Field.TermVector.WITH_POSITIONS_OFFSETS);
}
public static final Field Text(String name, int value){
return new Field(name,String.valueOf(value)
, Field.Store.YES, Field.Index.TOKENIZED
, Field.TermVector.WITH_POSITIONS_OFFSETS);
}
public static final Field Text(String name, long value){
return new Field(name,String.valueOf(value)
, Field.Store.YES, Field.Index.TOKENIZED
, Field.TermVector.WITH_POSITIONS_OFFSETS);
}
public static void delete(List<Term> terms, String indexfolder)
{
if (null == terms){
return;
}
IndexReader reader = null;
try{
reader = IndexReader.open(getDirectory(indexfolder));
for (int i = 0; i < terms.size(); i++){
Term aTerm = terms.get(i);
if (null != aTerm){
reader.deleteDocuments(aTerm);
}
}
}catch (IOException e){
logger.error(e.toString());
}finally{
try{
if (null != reader){
reader.close();
}
}catch (IOException e){
logger.error(e.toString());
}
}
}
/**
* 执行索引删除
* @param id 编号
* @param idname ID名称
* @param indexpath 索引目录
*/
public static void delete(int id, String idname, String indexfolder)
{
Term aTerm = new Term(idname, String.valueOf(id));
indexTermList(aTerm, indexfolder);
}
public static void indexTermList(Term aTerm, String indexfolder)
{
List<Term> aList = new ArrayList<Term>();
aList.add(aTerm);
delete(aList, indexfolder);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -