`
damoqingquan
  • 浏览: 48403 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Solr1.3的启动过程分析一

阅读更多

 1.  Solr1.3中使用初始化工具Initializer的实例来获得CoreContainer的对象。常规的步骤如下:
    -------------------------------------------
    Initializer initializer=new Initializer();
    //获得配置文件名,如果不调用该方法,将使用默认的solr.xml
    init.setSolrConfigFilename(config.getInitParameter("solrconfig-filename"));
    //设置如果启动出错是否停止
    setAbortOnConfigurationError(boolean abortOnConfigurationError);
    CoreContainer cores=init.initialize();
2.调用init.initialize()时都做了些什么事情?
   //使用下面语句获得主目录,例如:D:\search_engine\multicore/
   String instanceDir = SolrResourceLoader.locateInstanceDir();
   //获取主目录路径下的配置文件solr.xml,当为非多核的时候它是不存在的,所以下面就针对该文件是否存在出现了if-else分支。
  File fconf = new File(instanceDir, solrConfigFilename == null? "solr.xml": solrConfigFilename);
  2.1如果存在配置文件,通过下面的语句获得多核实例,也就是这两句代码这里,所有的核都已经创建了
   cores = new CoreContainer();
   cores.load(instanceDir, fconf);
  //接来的部分就是设置abortOnConfigurationError和solrConfigFilename连个属性而已。
 
  2.2如果不存在配置文件,采用下面的方法创建一个SolrCoreContainer实例。
    //这里仅仅是设置CoreContainer的load(SolrResourceLoader)属性,显然它是与主目录相关的了。
    cores = new CoreContainer(new SolrResourceLoader(instanceDir));
    //获取配置文件名,solrConfigFilename 为空则使用默认的文件名solrconfig.xml。
    SolrConfig cfg = solrConfigFilename == null ? new SolrConfig() : new SolrConfig(solrConfigFilename);
    //获得CoreDescriptor实例,三个参数依次为核容器,名字,主目录
    CoreDescriptor dcore = new CoreDescriptor(cores, "", ".");
    //创建一个SolrCore 对象,五个参数一次为 name, Dir, SolrConfig实例(代表配置文件),IndexSchema实例schema(代表域模式), CoreDescriptor(核描述器).
    SolrCore singlecore = new SolrCore(null, null, cfg, null, dcore);
    //上面很多地方使用了null,我们很容易想到内部使用了默认值
    //下面一句很显然是将singlecore这里核添加到cores中去
    cores.register("", singlecore, false);
    //这里是设置persistent属性
    cores.setPersistent(false);
    //对于solrConfigFilename以及abortOnConfigurationError的设置就不用说了
    //最后就是返回CoreContainer的实例了


cores.load(instanceDir, fconf);到底做了哪些事情呢?
敬请关注:http://www.lucas.gd.cn / 之Solr板块
----------------------------------------
原创文章:敬请著名出处http://www.lucas.gd.cn
作者:宋永维
email:lucas.song.cn@gmail.com

分享到:
评论

相关推荐

    Lucidworks Solr 参考指南 1.3

    - 字段分析是 Solr 处理文档的核心过程之一。通过对文本进行分词、标准化处理等方式,确保文档可以被有效索引。 **4.4 Solr 字段类型** - **字段类型定义**: 在 schema.xml 文件中定义字段类型及其相应的配置参数...

    银河麒麟服务器操作系统-Solr适配手册.pdf

    - 可定制:Solr允许用户自定义字段类型、分析器和查询解析器,满足多样化需求。 1.4 SOLR架构及原理 1.5.1 全文检索 Solr通过构建倒排索引,将文档中的词汇映射到包含这些词汇的文档列表,从而实现快速查找匹配的...

    Hbase同步数据到Solr的方案

    为了实现HBase到Solr的数据同步,我们可以使用HBase Indexer,这是一个由NGDATA开发的开源项目,它简化了这个过程,避免了手动编写同步代码的需求,从而减少了开发工作量和并发环境下的性能问题。在CDH 5.0.2版本中...

    solr 企业搜索引擎教程

    - **Solr**:Apache Solr 是一款高度可扩展且高性能的企业级搜索平台,由Apache软件基金会维护。它是一个开源搜索服务器,使用Java语言编写,并且主要基于HTTP协议和Apache Lucene实现。 - **特性**: - **高级...

    开源企业搜索引擎SOLR的 应用教程

    ### 开源企业搜索引擎SOLR的应用教程 ...通过以上内容,我们可以看到Solr作为一款成熟的开源企业搜索引擎,不仅具备强大的功能,还拥有丰富的配置选项和扩展能力,非常适合应用于各种复杂的企业级搜索场景。

    Nutch 1.3 学习笔记

    综上所述,Nutch 1.3是一款功能全面且高度可定制的网页抓取工具,通过深度集成Hadoop和Solr,它能够处理海量的网络数据,提供高效的数据抓取、分析和检索服务。无论是对于数据科学家、搜索引擎开发者还是研究者来说...

    Solrj 中文教程

    - **2.1.3 验证安装**:启动服务并访问Solr管理界面。 ##### 2.2 中文分词配置 为了支持中文搜索,需要配置中文分词器: - **2.2.1 mmseg4j**:一种常用的中文分词库。 - **2.2.2 paoding**:另一种常用的中文分...

    nutch入门学习

    - **分析**:Nutch 使用 Lucene 或 Solr 等工具进行搜索查询,返回相关文档列表。 ##### 5.4 分析 - **Nutch 的其他一些特性**:包括插件机制、API 接口等,允许用户根据需要扩展和定制功能。 #### 6. Nutch 分析...

    Ambari搭建HadoopAmbari搭建Hadoop_.docx

    Hortonworks Data Platform(HDP)是由Hortonworks公司提供的一个全面的大数据分析平台。该平台基于Apache Hadoop构建,并包含了多个重要的Hadoop生态系统项目,如MapReduce、Hadoop Distributed File System (HDFS)...

    ElasticSearch中文学习教程

    GitHub在2013年1月将其搜索功能从Solr迁移到ElasticSearch。当时,GitHub拥有庞大的数据量,包括13亿个文件和1300亿行代码,这些数据都需要被高效地索引和检索。GitHub使用ElasticSearch后,其搜索性能显著提升,...

Global site tag (gtag.js) - Google Analytics