Solr4:Tomcat7与Solr之多核配置(Multiple Cores)

2019-03-27 01:06|来源: 网路

1. 背景

多核,官方说法,让你只用一个Solr实例,实现多配置多索引的功能,为不同的应用保留不同的配置。
就是每个core都有独立的solrconfig.xmlschema.xml,却依然保留统一与方便的管理。
每份索引都可以当做一个独立的应用来对待,甚至可以实现索引的热切换。
比如说,为新闻、微博、论坛搜索各建立一个搜索系统,用多核的情况。
参考:http://wiki.apache.org/solr/CoreAdmin

2. 实现步骤

前提已经安装好Tomcat与Solr应用,详情参考阅读Solr4:Tomcat7下面配置Solr
1). 停止Tomcat,删除当前$SOLR_HOME下面全部内容,然后拷贝~/solr/example/multicore目录到$SOLR_HOME(本文中为/usr/local/solr/);

2). $SOLR_HOME/solr.xml应该类似于如下形式:

<solr persistent="true" sharedLib="lib">
 <cores adminPath="/admin/cores">
    <core name="wb" instanceDir="wb" />
    <core name="bbs" instanceDir="bbs" />
    <core name="news" instanceDir="news" />
 </cores>
</solr>

记得为每个目录拷贝相关文件。如:拷贝core0到wb/bbs/news,删除原先有的core0与core1。

3). 这样启动Tomcat应该就可以使用了。
打开:http://192.168.2.91:8080/solr/,然后在左边可以看到wb/bbs/news链接,即可以执行相关操作。

4). 自定义各个core的conf目录下面的schema.xml文件,加入自己的配置,如增加types,可能需要将~solr\example\solr\collection1\conf目录下的部分内容拷贝到各个core的conf等目录下;
比如加入中文分词mmseg4j,可以将它的data目录拷贝到$SOLR_HOME/mm4jdic下面,然后在schema.xml中的fieldType节点中配置dicPath即可。详情参考阅读Solr4:加入中文分词mmseg4j

3. 相关操作

3.1 插入数据

java -Durl=http://192.168.2.91:8080/solr/news/update -jar post.jar news.xml
java -Durl=http://192.168.2.91:8080/solr/bbs/update -jar post.jar bbs.xml
java -Durl=http://192.168.2.91:8080/solr/wb/update -jar post.jar wb.xml

3.2 删除数据

java -Ddata=args -Durl=http://192.168.2.91:8080/solr/news/update -Dcommit=false -jar post.jar "<delete><query>*:*</query></delete>"
java -Durl=http://192.168.2.91:8080/solr/news/update -jar post.jar -

java -Ddata=args -Durl=http://192.168.2.91:8080/solr/bbs/update -Dcommit=false -jar post.jar "<delete><query>*:*</query></delete>"
java -Durl=http://192.168.2.91:8080/solr/bbs/update -jar post.jar -

java -Ddata=args -Durl=http://192.168.2.91:8080/solr/wb/update -Dcommit=false -jar post.jar "<delete><query>*:*</query></delete>"
java -Durl=http://192.168.2.91:8080/solr/wb/update -jar post.jar -

3.3 查询数据

通过http://192.168.2.91:8080/solr选择相关core后查询即可。


转自:http://www.cnblogs.com/nayitian/archive/2013/01/18/2866742

相关问答

更多
  • 从SolrCloud文档 集合:单个搜索索引。 碎片:单个集合(也称为切片)的逻辑部分。 有时人们会从物理意义上谈论“碎片”(一种逻辑碎片的体现) 副本:逻辑碎片的物理表现形式,作为SolrCore上的单个Lucene索引实现 领导者:每个碎片的一个副本将被指定为负责协调该碎片的索引 SolrCore:封装一个物理索引。 一个或多个构成组成集合的逻辑碎片(或片)。 节点:Solr的单个实例。 一个Solr实例可以有多个SolrCore,它们可以是任意数量的集合的一部分。 群集:您用于托管SolrCores的 ...
  • 在ElasticSearch中,您可以通过索引将数据分离为单独的索引,然后将查询限制为特定的索引。 例如,如果您有两个索引,'foo'和'bar'正在运行: % curl -XGET http://localhost:9200/_search?q=*:* 将搜索整个群集,同时: % curl -XGET http://localhost:9200/foo/_search?q=*:* 将只搜索'foo'索引。 如果使用以下命令创建索引'测试',也可以按类型分隔数据: % curl -XPOST http: ...
  • 我不知道标准复制设置中Slave的任何自动核心检测/设置。 您可以通过软件使用CoreAdmin命令自行自动执行此操作。 或者,由于您要迁移到Solr 4,因此您应该考虑使用SolrCloud,因为这可能会提供您正在寻求的一些功能。 I do not know of any automatic core detection/setup for Slaves in the standard replication settings. You might be able to automate this you ...
  • Solr5 +我们可以使用configSets使用通用配置文件 可以在configsets目录中一次定义公共配置文件。 例如:/ solr / configsets / my_configs / conf /和core.property用于单个核心,如下所示: 在core1中:name = core1 configSet = my_configs schema = schema_my.xml config = solrconfig_my.xml 在core2中:name = core2 configSet ...
  • 试试这种方式 导航到Solr/solr-6.1.0/server/solr/ 创建新文件夹并命名为netest 。 从Solr/solr-6.1.0/server/solr/configsets/basic_configs/复制conf文件夹并将其粘贴到netest文件夹中。 现在你在终端sudo ./solr create -c netest上输入这个命令 这将使用Conf文件夹中的配置文件创建名为netest的newcore 希望这可以帮助 Try this way Navigate to Solr/s ...
  • 是。 实际上,现在所有的JVM都使用本机线程。 因此,跨核心的线程调度和分配由OS完成,而不是由JVM完成。 Scala在JVM上执行,就像Java一样。 因此,线程在Java和Scala之间使用内核的方式没有区别 没有理由每个核心有一个JVM。 您可能希望避免每个JVM使用两个内存,或者能够在没有任何服务中断的情况下使用版本1到版本2,但这是另一回事。 没有理由与多线程问题有关。 正如我所说,您可能希望有两个JVM能够在没有任何服务中断的情况下关闭一个JVM,或者为不同的客户隔离同一个应用程序的两个版本。 ...
  • 为了演示Pool我将假设你的工作函数使用一个文件名并产生一个数字,它被命名为work并且这20个文件被标记为1.txt ,... 20.txt 。 一种设置方法如下, from multiprocessing import Pool pool = Pool(processes=4) result = pool.map_async(work, ("%d.txt"%n for n in xrange(1,21))) print sum(result.get()) 这种方法将为您完成步骤3和4的工作。 In ...
  • 我想我解决了它...只需在solr.xml中指定相同的 instanceDir(但不同的dataDir) I think I solved it... simply by specifying the same instanceDir (but different dataDir) in the confiugation in solr.xml
  • 除非你专门使用并行结构 - 即使用显式并行 - 或者使用已经为你并行化的内置函数 - 否则Matlab将无法在多核机器上运行得更快。 这篇文章有一个已经并行化的内置函数列表,因此将利用多个核心: http://www.walkingrandomly.com/?p=1894 下面是使用并行构造来实现自己的并行性的示例: http://www.mathworks.com/matlabcentral/fileexchange/13775 The settings are at: File>Preferences> ...
  • 存储库扫描将查找solrTemplate并使用提供的模板创建存储库。 由于每个Solr核心需要一个模板,因此您必须手动创建模板和存储库。 首先创建您的存储库和自定义实现。 public interface EventRepositoryCustom { Page findEvent(); } public interface EventRepository extends EventRepositoryCustom, SolrCrudRepository