网上商城项目总结(九)搜索应用服务器solr及solrCloud
solr:独立的企业级搜索应用服务器,需要放到tomcat容器中使用。
通常我们需要配置一个中文分析器,默认的分析器无法分析中文(只会把中文当作字符一个个解析)。这里我们使用IKAnalyzer。
1.将IKAnalyzer2012FF_u1.jar加入到工程的lib下。将拓展词典(ext_stopword.dic这个词典中放忽略的字,如:的,哦,mydict.dic这个词典配置一些新词语,扩充筛查的关键字),配置文件(IKAnalyzer.cfg.xml)放到solr工程WEB-INF/classes下。
2.solr工程下的schema.xml中配置FieldType,制定IKAnalyzer。
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
3.配置业务域,配置时选用自己定义的IKAnalyzer分析器。
<field name="item" type="text_ik" indexed="true" stored="true"/>
4.运行tomcat启动服务。
SolorJ,是管理solr索引库增删改查用的API。
SolrCloud:分布式搜索方案,提供大规模,容错,分布式索引和检索能力。索引量大,搜索请求并发高时使用。
基于zookeeper和solr的分布式搜索方案,使用zookeeper作为集群的配置信息中心。1、集群管理:容错,负载均衡。2、配置文件的集群管理。3、集群的入口。所需服务器:7 = 3(zookeeper)+ 4(solr)。
collection:Collection在SolrCloud集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个Shard(分片),它们使用相同的配置信息。(解决高并发问题)
shard:Collection的逻辑分片。每个Shard被化成一个或者多个replication(solr),通过选举确定哪个是Leader。每个shard存储的内容不同。
Master:master-slave结构中的主结点(通常说主服务器)
Slave:master-slave结构中的从结点(通常说从服务器或备服务器)。同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的。