ClassNotFoundException HttpRequestInterceptor
在 solr 3.6 中,客户端使用 solrj 时
HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/");
时报一个错
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor
httpclient-4.1.3.jar
httpclient-cache-4.1.3.jar
httpcore-4.1.4.jar
httpmime-4.1.3.jar
http://archi
ve.apache.or g/dist/httpc omponents/ht tpclient/bin ary/httpcomp onents-clien t-4.1.3-bin. zip
solr 伸缩性和分布式介绍
- 当单机的查询性能不济时,可以考虑复制出多台索引来分别承担压力,如做一个全国性的搜索,可以将索引库复制30来个,每个省分一个,每个省请求过来时,分别在自己省所分配的索引库中进行搜索
- 将索引的读写分离,也可以很好的提供性能。由一个负责写索引,然后同步到其他索引,其他索引只读,仅提供搜索。
- 备份索引,详见利用 Replication Handler 备份索引
利用 Replication Handler 备份索引
solr 索引备份最简单的方式是通过 Replication Handler。在使用 Replication Handler 之前,需要将 solrconfig.xml 中 SolrReplicationHandler 的注释去掉:
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="master"> <str name="replicateAfter">commit</str> <str name="replicateAfter">startup</str> <str name="confFiles">schema.xml,stopwords.txt</str> </lst> <lst name="slave"> <str name="masterUrl">http://localhost:8983/solr/replication</str> <str name="pollInterval">00:00:60</str> </lst> </requestHandler>
http://localhost:81/apache-solr-3.5.0/replication?command=backup
该请求成功的话,会得到:
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">42</int> </lst> <str name="status">OK</str> </response>
此时在 solr/home 的 data 目录下,会发现类似 snapshot.20120626210126 的目录,该目录就是备份出来的索引库
在 tomcat 中运行 solr
基于 solr 进行开发,少不了要在 tomcat 中运行 solr,这里以 windows + tomcat 6.0 + solr 3.5 为基础讲解在 tomcat 中部署 solr 的过程。
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/put/your/solr/home/here</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
http://localhost:81/apache-solr-3.5.0/admin/
就可以看到 solr 的管理界面了,此时 solr 3.5 在 tomcat 中部署成功了。
JAVA_OPTS=”-Dsolr.solr.home=/Users/jonathan/Desktop/solr”
阿丁比较推荐的做法是按本例中的方式,配置在 web.xml 中,这样对tomcat、操作系统影响最少,换一个 tomcat 只需将修改自己本身的 web.xml 就行。
CoreAdminHandler 之 UNLOAD
http://local
host:8983/so lr/admin/cor es?action=UN LOAD&core=co re0
UNLOAD 请求必须制定一个参数:
CoreAdminHandler 之 SWAP
http://local
host:8983/so lr/admin/cor es?action=SW AP&core=core 1&other=core 0
该请求需要两个参数:
CoreAdminHandler 之 RENAME
http://local
host:8983/so lr/admin/cor es?action=RE NAME&core=co re0&other=co re5
该请求需要以下两个参数:
CoreAdminHandler 之 RELOAD
http://local
host:8983/so lr/admin/cor es?action=RE LOAD&core=co re0
RELOAD 仅接受以下这个参数:
Solr 4.0发布时间表
- 4.0- alpha 大约在2012年6、7月份发布
- 4.0-beta 大概在 alpha 版发布后的 30 天发布
- 4.0 (final) 大概在 beta 版发布后 30 天发布
这样,4.0 正式发布大概 2012 年 9 月份。