跟益达学Solr5之core.properties配置详解

学习Solr之前,我想对于初学Solr的小伙伴们来说, Solr的core概念是最令人头疼的,到底该怎么理解Solr中的core呢?以下是我从Solr的官方文档中摘下来的一段文字说明:

In Solr, the term core is used to refer to a single index and associated transaction log and configuration files (including schema.xml and solrconfig.xml, among others). Your Solr installation can have multiple cores if needed, which allows you to index data with different structures in the same server, and maintain more control over how your data is presented to different audiences.

In older versions of Solr, cores had to be defined in solr.xml in order for Solr to know about them. Now, however, Solr supports automatic discovery of cores and they no longer need to be explicitly defined. Instead, core-specific properties (such as the directories to use for the indexes or configuration files, the core name, and other options) are defined in a core.properties file. Any core.properties file in any directory of your Solr installation (or in a directory under where solr_home is defined) will be found by Solr and the defined properties will be used for the core named in the file.

我大致翻译下:

在Solr中,core术语是用来指代一个单独的索引、关联的事务日志以及一些配置文件(包括schema.xml和solrconfig.xml等等),如果你需要的话,在安装solr的时候你可以创建多个core,多core模式允许你在同一台服务器上使用不同的结构来索引你的数据以及在如何把索引数据展现给不同的用户方面提供了更多的控制。

在老版本Solr中,core必须按顺序定义在solr.xml配置文件中,这样Solr才能发现它们,不过现在Solr支持自动发现core,core不再需要显式明确的在solr.xml中定义,替而代之的是,使用core.properties属性文件来指定一些core属性,如:索引目录,配置文件,core名称以及其他可选项。Solr会自动在solr安装目录下发现core.properties文件(或者是solr_home目录下),core.properties配置文件中定义的参数是用来创建core的。

 

Core拥有自己独立的索引以及事务日志,每个core拥有自己独立的core目录,拥有自己独立的core访问URL即http://ip:port/solr/coreName,这里的coreName即你要访问的core名称,这为实现Solr distributed searching(分布式搜索)提供了便利。当然不同core不一定要在不同的服务器上,不同core可以在同一台server上。当然core也为索引数据分类提供了便利,同时也避免了单个索引目录下数据体积过大的问题。

 

下面来具体说说core.properties的配置:

name:      core的名称,必填参数

config:    用于指定solrconfig.xml配置文件的文件名,默认值是solrconfig.xml

dataDir:   指定用于存放lucene索引和log日志文件的目录路径,该路径是相对于core根目录(在单core模式下,就直接是相对于solr_home了),默认值是当前core目录下的data

ulogDir:用来配置指定事务日志文件路径的,默认值是当前core目录下的data目录下的tlog

schema: 即用来配置你的schema.xml配置文件的文件名的,schema.xml配置文件必须存放在当前core目录下的conf目录下

shard:用来设置当前core的分片id,可选参数

collection:用来配置当前core属于哪个solrClound collection,这里配置的是该solrClound collection的name值,可选参数

loadOnStartup:表示是否在solr启动部署的时候就加载core并为当前core创建一个新的IndexSearcher实例

transient:用来设置当Solr的transient-cacheSize阀值达到限制值的时候,是否自动卸载当前core.

 

下面是一个简单的core.properties配置示例:

 Solr在启动部署的时候,首先会加载core.properties配置文件,通过core.properties配置来自动发现core,然后根据里面配置的config和schema来加载solrconfig.xml和schema.xml这两个核心配置文件.注意core.properties只是一些core名称、核心配置文件,data数据目录等等这些参数的定义,加载core.properties配置文件时,core并没有开始创建。solrconfig.xml才是关键,里面涉及到solr依赖的lucene版本号,solr依赖的扩展jar包加载地址、lucene索引创建相关参数(比如DirectoryFactory),过滤器缓存,查询结果集缓存,document缓存等等配置。有关solrconfig.xml配置文件的讲解留到下一篇再详细说明,今天就到这儿了,晚安,各位!

 

       如果你还有什么问题请加我Q-Q:7-3-6-0-3-1-3-0-5,

或者加裙
一起交流学习!

转载:http://iamyida.iteye.com/blog/2211222

时间: 2024-12-21 14:00:41

跟益达学Solr5之core.properties配置详解的相关文章

跟益达学Solr5之solrconfig.xml配置详解

  solrconfig.xml配置文件中包含了很多solr自身配置相关的参数,solrconfig.xml配置文件示例可以从solr的解压目录下找到,如图:  用文本编辑软件打开solrconfig.xml配置,你将会看到以下配置内容: Xml代码   <?xml version="1.0" encoding="UTF-8" ?>   <!--    Licensed to the Apache Software Foundation (ASF)

跟益达学Solr5之使用Tomcat部署Solr

  最近忙着面试以及生活琐事把时间都霸占了,博客拖了4天没更新了,让各位久等了,望多多包涵!不过还好,工作已经敲定了,终于可以安心的学习Solr并分享我学习的点点滴滴啦!         上回我们在Jetty下部署了,不过我想小伙伴们使用Tomcat还是要多点,所以这回我们就来试试把Solr5部署到Tomcat下,这里以Win7 64bit Tomcat7.0.55为例,linux环境下同理,没太大区别:         首先你要去Solr官网下载Solr5.x的zip压缩包,至于怎么下载我这里

跟益达学Solr5之从MySQL数据库导入数据并索引

  最近有小伙伴跟我抱怨说:益达,最近博客更新的有点慢呐.其实不是我变懒了,我是不想因为数量而降低了博客的质量,我需要抱着对你们负责的态度来写每一篇博客,绝不能含糊啊,所以,还望大家多多包涵呐. 今天群里一朋友问我Solr如何对数据库表里的数据进行索引,为此,今晚特地更新此篇博客,这里我以Solr当前最新版本5.1.0,数据库MySQL为例进行讲解说明. 首先我们需要准备一张测试表,如图:      测试表创建好了之后,我们需要让表里插入几条测试数据,如图:  然后需要把E:\solr-5.1.

跟益达学Solr5之增量索引MySQL数据库表数据

   Solr5中如何增量索引MySQL数据库表中的数据,这个问题之前有某个童鞋问过我,今天午休时间就腾空更新篇博客,希望能帮助到你们.        为了测试方便,我首先从京东网站弄了点测试数据,如图:    这里要声明下,我不是在给京东商城打广告哈,仅仅是随便找个网站弄点测试数据,这部分工作全是我无聊手动插入MySQL数据库中的,如图:  建表SQL以及测试数据,我待会儿会上传到底下的附件里.然后你需要在solrconfig.xml配置文件中启用全量导入和增量导入请求处理器,如图:  然后分

跟益达学Solr5之批量索引JSON数据

     假定你有这样一堆JSON数据,   Json代码   [     {"id":"1", "name":"Red Lobster", "city":"San Francisco, CA", "type":"Sit-down Chain", "state":"California", "tag

转 Log4j.properties配置详解

一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR <

跟益达学Solr5之使用IK分词器

   在Solr中该如何使用IK分词器呢,这是小伙伴们问的频率比较高的一个问题,今晚特此更新此篇博客.其实之前我在其他博客里已经使用了IK分词器,只是我没做详细说明.        在schema.xml配置中其实有很多关于分词器的配置示例,我从中摘录一段配置示例,比如: Xml代码   <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100&qu

跟益达学Solr5之使用Ansj分词器

        OK,直接开门见山,不绕弯子啦!基于上篇博客,我们知道了在Solr中配置分词器有两种方式,一种是直接配置分词器类,比如: Xml代码   <fieldType name="text_ik" class="solr.TextField">                 <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" />         <

跟益达学Solr5之使用MMSeg4J分词器

   要想在Sor中使用MMSeg4J分词器,首先你需要自定义一个TokenizerFactory实现类,虽然直接配置Analyzer类也可以,但那样无法配置Analyzer构造函数的参数,不够灵活,存在弊端,所以我一直都是以扩展TokenizerFactory的方式来讲解类似MMSeg4J这样的中文分词器在Solr中的使用.       MMSegTokenizerFactory类我花了3个多小时修改了源码并经过N多测试,表示已经可以使用,我主要的是针对Lucene5 API对MMSegTok