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

📄 searchutils.java

📁 这是一款最新的野蔷薇论坛源码,有需要的朋友可以尽情下载
💻 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 + -