- SolrColud 伪分布式部署
- 创建 collections
- 配置IK分词器,用于中文搜索
- 测试数据准备
- 批量创建索引
- 搜索测试
1、 SolrColud 伪分布式部署
按照我这个文档一步一步操作即可配置成功,SolrColud集群配置教程
2、创建 collections
按照上面的教程配置好之后,就可以创建 collections了,网上相关的文档很多,我这里给一个最简单的创建例子,
http://localhost:8983/solr/admin/collections?action=CREATE&name=yourCollectionName&numShards=3&replicationFactor=3
name:将被创建的集合的名字
numShards:集合创建时需要创建逻辑碎片的个数
replicationFactor:每个文档副本数。replicationFactor(复制因子)为 3 意思是每个逻辑碎片将有 3 份副本,还有其他的很多参数,可以自己查看相关文档
创建成功之后,应该可以看到下面这样的界面:
3、配置IK分词器,用于中文搜索
由于IK官方的IK Analyzer 2012FF_hf1.zip 只支持到4版本的Solr,5版本的Solr配置官方的这个IK会报抽象方法错误(java.lang.AbstractMethodError
),所以如果用的solr是5版本的,请使用这个IK:IK-Analyzer5.0
如何配置:
1、将上面的压缩包解压之后,将src
目录下的IKAnalyzer.cfg.xml、stopword.dic
复制到solr_home_*\server\solr\WEB-INF\classes\
目录下,如果没有classes则自己创建一个,每个solr_home
都需要复制一份。
2、将压缩包里面的IKAnalyzer-5.0.jar
复制到 solr_home_*\server\solr\WEB-INF\lib\
目录下,同样每个solr_home
都需要复制一份。
3、找到cloud-conf\schema.xml
,增加iK相关的配置,首先增加fieldtype:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
然后在需要的字段使用即可:
<field name="my_name" type="text_ik" indexed="true" stored="true" multiValued="false" />
最后进行测试,访问solrColud
http://localhost:8983/solr
效果如下图:
。
4、测试数据准备
好了,到现在为止,简单的配置都已经完成,是不是迫不及待的找些数据来测试一番,我使用八爪鱼爬了一些segmentfault
的帖子数据,有1.1W条的样子,需要的可以直接下载:1.1W条测试数据,字段有:标题、URL、正文、关注、收藏、浏览、回答数、用户、头像
5、批量创建索引
数据准备好了,现在可以开始创建索引了,可以直接在solr控制台上面导入数据,也可以使用solrj调用接口操作,考虑到以后是需要和程序整合在一块的,我使用solrj进行导入,可以下载我的Maven工程,运行com.solrcloud.SolrMain
里面的Main
方法即可,记得要修改测试数据文件的路径,还需要修改com.solrcloud.SolrCloudServer
中47行的默认collection
为你自己在上面第二步创建的时写的名字,同时修改43~45行的zookeeper
节点的地址和端口为你自己的。(注:如果用我提供的测试数据,则需要在schema.xml
中定义好相应的字段,否则将会报错,可以把我的schema.xml
直接覆盖你原有的,这个文件放在工程的跟目录下SolrTest\schema.xml
).
6、搜索测试
将第五步提到的工程下载下来,导入到工作空间,部署到tomcat,启动即可进行测试,已经实现了搜索、自动完成、分页搜索 、高亮显示关键词等功能,效果图如下:
自己用来简单测试的项目,不足之处欢迎指正。再贴一次工程下载路径:solr简单测试工程