在上一篇文章中(详见http://www.cnblogs.com/bxljoy/p/3850263.html),我们已经介绍了tomcat+solr的索引服务器的配置,但是文中创建的服务器只能支持存储单一索引,很多情况下,我们需要对多个表或者多组不同的数据分别创建索引,如果每次需要创建一个索引库,就要部署一套solr服务,那明显是不合算的,所以本文就来介绍一下solr的进阶应用,在同一台服务器中配置多核索引。

进入我们解压好的solr文件目录:

cd /home/hadoop2/solr/example/multicore

ls

core0  core1  exampledocs  README.txt  solr.xml  zoo.cfg

将此文件夹下的所有内容都复制到我们solr服务器的home目录,如下:

cp -r  *  /home/hadoop2/solrhome

ls

bin  collection1  controller  core0  core1  logs  README.txt  solrindex  solr.xml  zoo.cfg

其中solr.xml配置文件内容如下:

<solr persistent="false">

  <!--
adminPath: RequestHandler path to manage cores.
If 'null' (or absent), cores will not be manageable via request handler
-->
<cores adminPath="/admin/cores" host="${host:}" hostPort="" hostContext="${hostContext:solr}">
<core name="core0" instanceDir="core0" />
<core name="core1" instanceDir="core1" />
<core name="controller" instanceDir="controller" />
<shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory"> <str name="urlScheme">${urlScheme:}</str> </shardHandlerFactory> </cores> </solr>

其中红字部分需要注意:端口需要改成与自己配置的tomcat服务器端口一致,本文中为6688,;而下面的红字core属性为自定义的索引文件夹,在solrhome目录中分别对应core0、core1和controller索引文件夹,其中包含配置文件和索引数据文件:

ls /home/hadoop2/solrhome/controller/conf

logs  schema.xml  solrconfig.xml

ls /home/hadoop2/solrhome/core0/conf

logs  schema.xml  solrconfig.xml

ls /home/hadoop2/solrhome/core1/conf

logs  schema.xml  solrconfig.xml

其中solrconfig.xml无需修改,只要修改schema.xml即可:

<schema name="example core zero" version="1.1">

   <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="" positionIncrementGap=""/>
<!-- general -->
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="type" type="string" indexed="true" stored="true" multiValued="false" />
<field name="name" type="string" indexed="true" stored="true" multiValued="false" />
<field name="core0" type="string" indexed="true" stored="true" multiValued="false" />
<field name="_version_" type="long" indexed="true" stored="true"/> <!-- field to use to determine and enforce document uniqueness. -->
<uniqueKey>id</uniqueKey> <!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>name</defaultSearchField> <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="OR"/>
</schema>

系统默认的uniqueKey为id,如果有需要,我们可以修改uniqueKey,并添加我们需要创建的索引字段,如下:

<schema name="example core zero" version="1.1">

   <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="" positionIncrementGap=""/>
<!-- general -->
<!--
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
-->
<field name="type" type="string" indexed="true" stored="true" multiValued="false" />
<field name="name" type="string" indexed="true" stored="true" multiValued="false" />
<field name="core0" type="string" indexed="true" stored="true" multiValued="false" />
<field name="_version_" type="long" indexed="true" stored="true"/> <!-- field to use to determine and enforce document uniqueness. -->
<uniqueKey>rowkey</uniqueKey>
<field name="rowkey" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="one" type="string" indexed="true" stored="true" multiValued="false" />
<field name="two" type="string" indexed="true" stored="true" multiValued="false" />
<field name="three" type="string" indexed="true" stored="true" multiValued="false" /> <!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>name</defaultSearchField> <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="OR"/>
</schema>

以上的配置文件中,我们将uniqueKey修改为rowkey,并注释掉id字段的定义,或者修改id字段的required属性为fasle也可以,然后我们添加了需要创建索引的字段。

之前介绍的配置文件的修改,我们在core0、core1和controller三个文件夹中都需要做,根据建立的三个不同索引的需要,配置不同的uniqueKey和索引字段。然后重启tomcat服务器,访问对应的solr服务器的url:http://10.1.5.242:6688/solr,会看到如下图页面:

点击左侧菜单栏中的  Core Admin选项,就可以看到多个索引的状态页面了,如下图:

点击controller、core0和core1中间菜单栏,就可以切换索引状态界面,查看索引的具体信息。

solr服务器的多核索引配置步骤就是这样,后面我会介绍使用solr的java API,对索引进行创建、更新和删除等基本操作。

转载请注明出处:http://www.cnblogs.com/bxljoy/p/3861003.html

linux下配置tomcat7 + solr4.9(续)--- 多核索引的配置的更多相关文章

  1. Linux下使用 github+hexo 搭建个人博客03-hexo配置优化

    上两张文章,我们说了 hexo 部署.主题的切换.博文的创建.MarkDown 简单使用和 hexo 部署到 GitHub Pages. 也说了我们会使用 next 主题做为我们后期博客的使用和维护. ...

  2. linux下配置tomcat7 + solr4.9

    一.安装准备 操作系统:CentOS 6.5 tomcat版本:apache-tomcat-7.0.54.tar.gz solr版本:solr-4.9.0.tgz 二.部署实施 安装tomcat:将t ...

  3. Linux下Solr单机版、集群版安装与配置

    一.安装 1.需要的安装包有apache-tomcat-7.0.47.tar.gz.solr-4.10.3.tgz.tgz(jdk自行安装) 这里默认大家已经安装好jdk与tomcat,所以在这里不做 ...

  4. Linux下安装tar.gz类型的jdk,并配置环境变量

    近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...

  5. Linux下jvm、tomcat、mysql、log4j优化配置笔记

    小菜一直对操作系统心存畏惧,以前也很少接触,这次创业购买了Linux云主机,由于木有人帮忙,只能自己动手优化服务器了.... 小菜的云主机配置大致为:centeos6(32位),4核心cpu,4G内存 ...

  6. Linux下jvm、tomcat、mysql、log4j优化配置

    小菜一直对操作系统心存畏惧,以前也很少接触,这次创业购买了Linux云主机,由于木有人帮忙,只能自己动手优化服务器了.... 小菜的云主机配置大致为:centeos6(32位),4核心cpu,4G内存 ...

  7. Linux下jvm、tomcat、mysql、log4j优化配置笔记[转]

    小菜一直对操作系统心存畏惧,以前也很少接触,这次创业购买了Linux云主机,由于木有人帮忙,只能自己动手优化服务器了.... 小菜的云主机配置大致为:centeos6(32位),4核心cpu,4G内存 ...

  8. Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解

    Linux下Tomcat catalina.out自动归档 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了.  为了避免这种情况,你 ...

  9. linux下的开源移动图像监测程序--motion编译与配置

    前几天在网上偶然看到一篇博客,是利用linxu下的开源的motion搭建嵌入式视频动态监控系统,感觉很好很强大于,是就想自己编译移植一下试试. 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域 ...

随机推荐

  1. Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法

    一.概述 Android的animation由四种类型组成:alpha.scale.translate.rotate,对应android官方文档地址:<Animation Resources&g ...

  2. 沈逸老师PHP魔鬼特训笔记(10)

    为了防止代码让我们混淆不清,大家看视频中的分离方法 1.新建了一个文件夹叫code (这代表是代码) 2.再新建一个文件夹叫page (这代表是页面) 代码该怎么写呢? 这里要记住口诀 1.index ...

  3. 【阿里云产品公测】利用PTS服务优化网站数据库读写性能

    [阿里云产品公测]利用PTS服务优化网站数据库读写性能 作者:阿里云用户千鸟 写这个帖子主要也是因为在用PTS测试网站的时候,手动访问网站进入报错页面,主要原因是数据库连接对象存在问题,导致并发多的时 ...

  4. 《Cortex-M0权威指南》之体系结构---栈空间操作

    转载请注明来源:cuixiaolei的技术博客 栈空间作为一种存储器使用机制,是"先入先出"的结构,在系统空间中用作临时数据的存储.栈空间操作的关键之一为栈指针寄存器,每次执行栈操 ...

  5. iOS webView的一些基本用法

    1.自己拼接html来显示想要的文字(参考:http://www.mamicode.com/info-detail-492242.html) NSString *htmlStr=@"< ...

  6. 条件控制(if ) ( case)

    一:IF应用格式 (1) (2) (3) IF 条件 THEN IF 条件 THEN IF 条件1 THEN --代码块        --代码块    --代码块1 commit; commit; ...

  7. BI中PowerDesigner建模

    PowerDesigner下载: http://pan.baidu.com/share/link?shareid=296749&uk=1479845243

  8. poj 3728 The merchant 倍增lca求dp

    题目: zdf给出的题目翻译: 从前有一个富饶的国度,在这里人们可以进行自由的交易.这个国度形成一个n个点的无向图,每个点表示一个城市,并且有一个权值w[i],表示这个城市出售或收购这个权值的物品.又 ...

  9. [wordpress] 输出一个过滤器绑定的方法

    参考了WordPress: How do I get all the registered functions for 'the_content' filter, function print_fil ...

  10. AngularJS学习小结

    在刚学习AngularJS的时候觉得好像挺简单的,看见老师每次用很少的代码就做出用源生代码或者JQuery要用多行代码才做出的效果的时候觉得好像思路很简单,也很好写就写出来了,但是等到我们自己做的时候 ...