在线给solr增加core的方法


步骤:
1、下载tomcat、solr、并解压它们
2、将solr.war拷贝至tomcat/webapps下面
3、将solr/example下面的multicore拷贝至tomcat下面,并改名为solr
4将solr/solr.xml中的<solr persistent="false">改为了<solr persistent="true">
5、cd tomcat;bin/startup.sh启动tomcat
6、首先要保证已经将solr/solr.xml中的<solr persistent="false">改为了<solr persistent="true">
7、在运行的时候将core1复制一份,改名为core2
8、之后发送请求
http://localhost:8080/solr/admin/cores?action=CREATE&name=core2&instanceDir=/opt/tomcat/solr/core2&config=solrconfig.xml&schema=schema.xml&dataDir=data
9、刷新http://localhost:8080/solr/即可看到新的core2已经识别出来了
10、可以指定dataDir的位置,以使索引创建在不同的目录,参数稍微修改一下即可:
http://localhost:8080/solr/admin/cores?action=CREATE&name=core2&instanceDir=/opt/tomcat/solr/core2&config=solrconfig.xml&schema=schema.xml&dataDir=/opt/tomcat/data1
11、修改过dataDir的请求,生成的solr.xml文件中我们已经可以看到dataDir的位置:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
  <cores adminPath="/admin/cores">
    <core name="core0" instanceDir="core0/"/>
    <core name="core1" instanceDir="core1/"/>
    <core name="core2" instanceDir="/opt/tomcat/solr/core2/" dataDir="/opt/tomcat/data1"/>
  </cores>
</solr>
12、操作成功返回的code应该是0:下面是操作成功之后页面显示的内容
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">77</int>
</lst>
<str name="core">core2</str>
<str name="saved">/opt/tomcat/solr/solr.xml</str>
</response>


这个例子的作用在于:
当单个core的规模增长到一定程度之后,检索速度会相应变慢,如果我们创建一个新的core,将新来的数据写入新的core中,检索起来性能会有所提升。
ps:使用lucene的时候可以使用MultiSearcher对多快索引进行多线程搜索,性能有大幅提升,但是在solr环境下没有提供MultiSearcher的支持,本例的方法有效的解决了此问题。
本文参考了:http://wiki.apache.org/solr/CoreAdmin#CREATE
最后:感谢solr为我们提供了如此强大的支持。

你可能感兴趣的:(多线程,tomcat,Lucene,Solr,encoding)