Apache Nutch v2.0 发布

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

Apache Nutch v2.0 版主要改进集中在基于 Apache Gora 存储抽象层的大规模的 Web 爬取,支持大数据存储系统包括:Apache Accumulo™, Apache Avro™, Apache Cassandra™, Apache HBase™, HDFS™ ,同时 2.0 版本大大改进了对 Hadoop 分布式平台的支持,详细的改进内容请看:

http://www.apache.org/dist/nutch/2.0/CHANGES.txt

Replication 配置之 replicateAfter

该参数用于指定在发生了某些事情后会触发索引同步,这些事情是发生在主服务器上的,包括 commit、optimize 和 startup,也就是在提交、优化索引,或者启用索引库时,会去触发索引同步。该参数可以配置多次,即多个事件都可以触发索引同步,如下所示:

<str name="replicateAfter">startup</str>
<str name="replicateAfter">commit</str>
<str name="replicateAfter">optimize</str>

这样在启动、提交和优化都会促发索引同步。

使用 ReplicationHandler 设置一个中继器(Repeater)

主从分布式中,就一台主服务,可以存在多个从服务,从服务需要从主服务同步数据,当几个从服务部署在同一个机房,而和主服务没有部署在同一个机房,这种情况所有从服务都从主服务同步数据就会比较耗带宽。为了解决这个问题,可以配置一个活多个从服务器为中继器,这样,该中继器从主索引同步完索引后,然后可以充当主服务的职责,将自己的索引不同给其他的从服务,这样这个中继器既充当了从服务又充当了主服务。

  • 配置一个服务器为中继器,在 solrconfig.xml 中定义 requestHandler 时,需要同时包含主服务和从服务的文件列表
  • 确保设置 replicateAfter 参数为 commit,即使主服务中 replicateAfter 设置为 optimize 。
  • 可以设置压缩参数,这样可以减少下载索引的时间
这里是一个配置中继器的例子:
<requestHandler name="/replication" class="solr.ReplicationHandler">
	<lst name="master">
		<str name="replicateAfter">commit</str>
		<str name="confFiles">schema.xml,stopwords.txt,synonyms.txt</str>
	</lst>
	<lst name="slave">
		<str name="masterUrl">http://master.solr.company.com:8983/solr/replication</str>
		<str name="pollInterval">00:00:60</str>
	</lst>
</requestHandler>

在从服务器中配置索引复制请求处理

以下代码显示如何在从服务器中配置一个索引复制请求处理:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
	<lst name="slave">
		<!--主索引的url,该从索引将从这个主索引地址同步索引-->
		<str name="masterUrl">http://remote_host:port/solr/corename/replication</str>;
		<!--拉取间隔,达到这个时间,从索引将从主索引同步索引.格式为 is HH:mm:ss . 如果该设置为空从索引将不会主动从主索引同步索引.
		另外拉取索引的请求也可以通过 admin 页面或者 http api 来触发 -->
		<str name="pollInterval">00:00:20</str>
		<!-- 以下参数不常用,非必填参数-->
		<!--在索引传输过程中使用压缩,可选的值有两个 internal 和 external
		如果值是 'external' 请确保主索引的solr已经设置了accept-encoding header。
		如果值是 'internal' 索引数据将被自动压缩?,这个主要在低带宽情况下使用,局域网中请不要使用,局域网中使用会降低复制效率-->
		<str name="compression">internal</str>
		<!-以下是配置连接和读取超时时间,这个跟 http 中的概念一样,单位为毫秒-->
		<str name="httpConnTimeout">5000</str>
		<str name="httpReadTimeout">10000</str>
		<!-- 如果主服务中的 http base 的鉴权可用的话,从服务就需要配置这个用户名和密码 -->
		<str name="httpBasicAuthUser">username</str>
		<str name="httpBasicAuthPassword">password</str>
	</lst>
</requestHandler>

Apache Solr 4.0 Alpha 发布

Apache Solr 4.0 Alpha 发布了,该版本主要是对应 Lucene 4.0 alpha 发布而发布

复制 solrconfig.xml

在主服务的配置文件里有这么一行:
<str name="confFiles">solrconfig_slave.xml:solrconfig.xml,x.xml,y.xml</str>
solrconfig_slave.xml:solrconfig.xml 的意思是主服务中的 solrconfig_slave.xml 在复制到从服务器上时,solrconfig_slave.xml 将被重命名成 solrconfig.xml ,其他文件将按原始名称复制过去。

在主服务中配置索引复制请求处理类

以下是个主从复制模式中的主服务的配置示例:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
	<lst name="master">
		<!--在 'optimize(合并索引)'后进行同步,其他可选的值还有'commit', 'startup',该值可以填多个-->
		<str name="replicateAfter">optimize</str>
		<!--在 'optimize(合并索引)'后备份索引,其他可选的值还有'commit', 'startup',该值可以填多个-->
		<!-- <str name="backupAfter">optimize</str> -->
		<!--指定备份多少份文件,默认值为 MAX_VALUE-->
		<!-- <int name="numberToKeep">2</int> -->
		<!--指定需要同步的配置文件,多份文件以逗号分隔 -->
		<str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
		<!--The default value of reservation is 10 secs. Normally , you should not need
		to specify this -->
		<str name="commitReserveDuration">00:00:10</str>
	</lst>
</requestHandler>

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress