`
chuan9966
  • 浏览: 46536 次
文章分类
社区版块
存档分类
最新评论

2013-04-22期-搜索引擎核心代码2

 
阅读更多

核心代码

搜索引擎核心代码 -- SearchObject.java

package com.searchengine.core;

import java.util.HashMap;
import java.util.Map;

import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.NRTManager;

public  class SearchObject {

    private static Map<String,SearchEngineCore> luceneContextMap =null;
    private static IndexSearcher[] searchers =null;
    private static IndexReader[] readers =null;
    private static SearchObject instance;
    /**
     * 初始化对象
     * @return
     */
    public static SearchObject getInstance(){
        if(instance==null){
            init();
            instance = new SearchObject();
        }
        return instance;
    }
    /**
     *  Function:创建Lucene索引对象
     *  @author JLC
     */
    public static void init(){
        try{
            //后面可能会出现多个索引配置  先写成公共的方便拓展
            luceneContextMap = new HashMap<String, SearchEngineCore>();
            searchers = new   IndexSearcher[1];
            readers = new IndexReader[1];
            int i=0;
            luceneContextMap.put("search",new SearchEngineCore("search","c:/lucentindex/searchdata/"));
            searchers[0]=luceneContextMap.get("search").getSearcher();
            readers[0] = searchers[0].getIndexReader();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    /**
     *  Function:取得所有查询对象
     *  @author JLC
     *  @return 返回所有查询对象
     */
    public  IndexSearcher[] getSearchers(){
        int i=0;
        if(searchers!=null&&searchers.length>0&&luceneContextMap!=null&&luceneContextMap.size()>0){
            searchers[i++]=luceneContextMap.get("search").getSearcher();
        }else{
            init();
        } 
        return searchers;
    }

    /**
     *  Function:取得所有查询对象Reader
     *  @author JLC
     *  @return
     */
    public  IndexReader[] getSearcherReads(){
        int i=0;
        if(searchers!=null&&searchers.length>0&&luceneContextMap!=null&&luceneContextMap.size()>0){
            readers[i++]=luceneContextMap.get("search").getSearcher().getIndexReader();
        }
        return readers;
    }

    /**
     *  Function:取得制定查询对象
     *  @author JLC
     *  @return
     */
    public  IndexSearcher getSearcher(String index){
        return luceneContextMap.get(index).getSearcher();
    }

    public  NRTManager getNRTManager(String index){
        return luceneContextMap.get(index).getNRTManager();
    }

    public  SearchEngineCore getLuceneContext(String index){
        return luceneContextMap.get(index);
    }
}
分享到:
评论

相关推荐

    SQL Server 2008高级程序设计 2/6

    Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋...

    SQL Server 2008高级程序设计 1/6

    Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋...

    SQL Server 2008高级程序设计 3/6

    Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋...

    新版Android开发教程.rar

    � 由于是源代码开放的产品,对非主导厂商而言,可以避开与主导厂商在核心技术上面的差距,开发出 更 具竞争力和差异化的产品。 对运营商的影响 � 丰富的数据业务,将导致数据流量的显著增加 。 � 手机来源增加,...

    SQL Server 2008高级程序设计 5/6

    Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋...

    SQL Server 2008高级程序设计 4/6

    Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋...

    SQL Server 2008高级程序设计 6/6

    Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件,也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋...

    《程序员》杂志2012年第7期

    (2)搜索引擎的查询意图识别 (3)社交网络:数据科学家眼中的金矿 (4)标签传播算法在微博用户兴趣图谱的应用 (5)基于大规模语料的新词发现算法 (6)内容推荐和优化的在线模型 (7)“人工+智能”:...

    asp.net知识库

    asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多...

    大学文献检索资料 DOC

    22 申请日 98. 6.17 71 申请人 重庆大学 72 发明人 江涛 李燕红 74 专利代理机构 重庆大学专利事务所 代理人 张敏 54 发明名称 屋面防渗漏处理工艺 57 摘要(略) 国际专利分类号索引片断 国际...

    酷睿股票私募网站管理系统 V2011.rar

    修正了Robots.txt搜索引擎蜘蛛文件对网站的收录权限,让搜索引擎更新收录网站内容 并取消了首页的数个IFRA使用网站的ME调用,尽可能增加了对搜索引擎的友好程度 删除了上百个垃圾文件使用网站的减小40% 优化了...

    酷睿股票私募网站管理系统 V2010 SP2

    修正了Robots.txt搜索引擎蜘蛛文件对网站的收录权限,让搜索引擎更新收录网站内容 全新内核系统使网站载入速度提高了60% 并取消了首页的数个IFRAME调用,尽可能增加了对搜索引擎的友好程序 可选择性增加功能相关功能...

    android开发资料大全

    百度地图API 之 定位周边搜索POI(奉上源代码) Android 应用小实例--炫酷计时器 android客户端连接服务器并交互实例 Android小项目合集(经典教程) 看到很强大的实例----高仿【优酷】圆盘旋转菜单 的实现 如何...

    酷睿股票私募网站管理系统 V2011

    修正了Robots.txt搜索引擎蜘蛛文件对网站的收录权限,让搜索引擎更新收录网站内容 并取消了首页的数个IFRA使用网站的ME调用,尽可能增加了对搜索引擎的友好程度 删除了上百个垃圾文件使用网站的减小40% 优化了大量的...

    酷睿股票私募网站管理系统V2010 SP3

    修正了Robots.txt搜索引擎蜘蛛文件对网站的收录权限,让搜索引擎更新收录网站内容 并取消了首页的数个IFRA使用网站的ME调用,尽可能增加了对搜索引擎的友好程度 删除了上百个垃圾文件使用网站的减小30%,使网站载入...

    骑士cms高效人才招聘系统 v3.1 build 20111114 Beta.rar

    新增职位和简历热门关键字管理 新增搜索关键字提示框 新增邮件模版和页面设置标签选择器 新增数据表后台优化 新增计划任务 新增简历姓名显示方式默认设置 新增会员日志 新增简历有效期默认值设置 新增简历有效期最少...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    这个项目完全按照高访问量互联网站进行设计,通过这个项目,学员不仅可以在实战中巩固对前面学习的ASP.Net、ADO.Net、WinForm等知识的掌握,还可以掌握网站防黑、缓存、SEO、静态化、搜索引擎技术、AJAX等大型互联网...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    除在保密期内的保密论文和在技术保护期限内的论文外,允许论文被查阅和借阅,可以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布(包括以电子信息形式刊登)授权东南大学研究生...

    酷睿财经门户网站管理系统 V2011

    三种文件状态:可将站点全部页面高为动态、静态及伪态格式,大大提高浏览速度及搜索引擎的搜录量。 5种生成文件存放结构选择,5生成文件命名形式选择,可随意定生成的扩展名,一切更可能的根据您的喜好DIY。 独有利...

Global site tag (gtag.js) - Google Analytics