利用Lucene给网站、系统增加搜索功能

有些网站的搜索功能都是直接使用like %关键词%方式对数据库进行关键词查找,不过这种方式速度比较慢,而且影响数据库服务器性能
其实我们可以先把数据从数据库查询出来,利用Lucene建立索引。以后每次查找都从索引中查找,可以提高查询速度和减轻服务器负担。
本篇用到的技术:Lucene 3.0.2 , IKAnalyzer 3.2.5
search.properties主要是配置搜索的信息,内容:

 

sql=select iId,title,content,credate from archeive //指定查找sql,需要建立索引的数据

update.field=iId

update.value=

search.condition=title,content                     //搜索时的查找字段

index.path=D:/project/Java/lucene/WebContent/WEB-INF/classes/Index  //索引的保存地址

 

period=10000                                      //更新索引的时间间隔

 

com.search.util.SearchConfig主要是读取search.properties的信息。

 

public class SearchConfig {

    private Properties searchPro;

    private String searchFile = "search.properties";

    private String SQL = "sql";

    private String CONDITION = "search.condition";

    private String INDEX = "index.path";

    public SearchConfig(){

        initSearch();

    }

    

    public void initSearch(){

        searchPro = PropertiesUtil.getProperties(searchFile);

    }

    

    public String getSql(){

        return searchPro.getProperty(SQL, "");

    }

    

    public String getCondition(){

        return searchPro.getProperty(CONDITION, "");

    }

    

    public File getIndexPath(){

        String path = searchPro.getProperty(INDEX, "");

        File file = new File(path);

        if (!file.exists()) {

            file.mkdir();

        }

        return file;

    }

    

    public long getPeriod(){

        String period = searchPro.getProperty("period", "0");

        return Integer.valueOf(period);

    }

    

    public String getUpdateField(){

        return searchPro.getProperty("update.field", "");

    }

    

    public String getUpdateValue(){

        return searchPro.getProperty("update.value", "");

    }

    

    public void save(){

        PropertiesUtil.saveProperties(searchPro, searchFile);

    }

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值