solr学习
solr 本地搭建
一.1 检查solr-server配置
在servers view中出现的t7-solr上右键-open,出现如下视图,请如图配置server location修改后会变灰,如果想重新修改,需要移除该server下的项目,在该server上右键clean(移除掉server的状态)
完成后即可修改
端口配置正确表示:
1. tomcat admin port与ajp/1.3与其他tomcat的对应配置不重复;
2. http/1.1的端口号是要求的端口号:solr:9000
解压solr-config.zip
将提供的solr-config放到某目录下如:E:\work\icbc_project\project\
配置vm参数(选配)
点击上图中open launch configuration,配置vm参数
-Dsolr.solr.home=E:\work\icbc_project\project\solr-config\multicore -DSolrRemoteAddress=127.0.0.1 -Dsolr.host=127.0.0.1:9000
说明:
solr.solr.home表示solr配置&索引信息所在根目录(multicore所在的路径)
solrRemoteAddress表示允许的远程访问ip(默认为127.0.0.1,一般不用配置)
solr.host表示本机访问solr主机的请求ip与端口
目前有2个索引库:product、store具体可以看E:\work\icbc_project\project\solr-config\multicore\solr.xml文件中配置了几个<core>
在mutilcore目录下的每个索引库中的conf/db-data-config.xml文件中都要配置数据源。
有项目中配置的默认是:jdbc/mall。
注:tomcat中jndiName配置为:java:comp/env/jdbc/mall
WAS中jndiName配置为:jdbc/mall
5 配置索引库位置在solr项目中的web.xml文件中配置
中的env-entry-value值,必须为绝对路径。
必须配置
6 测试访问
1. 启动tomcat
2. 访问http://127.0.0.1:9000/emall-solr看到solr主页即表示成功!
集群部署
以下红色字体的需要配置!
现在索引库product和store都要配置!
1 主索引库配置
1. 打开solrconfig.xml文件添加以下配置:
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<!-- 当有新的索引被提交,标记新的索引和保存新索引的文件名 -->
<str name="replicateAfter">commit</str>
<!-- 当系统启动时,标记新的索引和保存新索引的文件名 -->
<str name="replicateAfter">startup</str>
<!-- 当索引优化时,标记新的索引和保存新索引的文件名,因为 commit,optimize 基本上是同时存在的,所以一般不用设置 optimize-->
<!-- <str name="replicateAfter">optimize</str>-->
<!-- 索引优化后创建一份备份索引,这个在复制过程中不需要设置 -->
<!--<str name="backupAfter">optimize</str>-->
<!-- 索引复制时,也同步从服务器的配置文件 solrconfig_slave.xml:solrconfig.xml 表示复制时,在slave端以solrconfig.xml进行保存,这样slave才能认识这个文件-->
<str name="confFiles">schema.xml,solrconfig.xml,stopwords.txt,elevate.xml</str>
<str name="commitReserveDuration" >00:01:00</str>
<!-- 设置验证信息 -->
<str name="httpBasicAuthUser">icbc_user</str>
<str name="httpBasicAuthPassword">icbc_password</str>
</lst>
</requestHandler>
2 从索引库配置
1. 打开solrconfig.xml文件添加以下配置:
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<!-- 主服务器的URL,product是配置了多核的目录名,如果不是多核,连接应该是http://192.168.181.50:9000/solr/replication -->
<str name="masterUrl">http://192.168.181.50:9000/solr/product/replication</str>
<!-- 1分钟同步一次 -->
<str name="pollInterval">00:01:00</str>
<!-- 压缩机制,来传输索引,可选 internal|external,internal表示内网,external表示外网 -->
<str name="compression">external</str>
<!-- 设置超时时间 -->
<str name="httpConnTimeout">5000</str>
<str name="httpReadTimeout">10000</str>
<!-- 设置验证信息,要和master 服务器配置一样 -->
<str name="httpBasicAuthUser">icbc_user</str>
<str name="httpBasicAuthPassword">icbc_password</str>
</lst>
</requestHandler>
1 项目中Server端配置
Server端的url是在数据库中读取,所以调用Solr服务前必须在数据库表中设置,具体如下:
例如:solr服务的url是http://82.200.30.250:8100/solr,则
update into B2C_SYS_PARAMS s set s.VALUE = ‘http://82.200.30.250:8100/solr
’ where s.INNER_NAME = ‘solr.server’;
commit;
注:如果多台solr服务器,则在多个url前以“|”分割保存在数据库中。
2 创建索引
每次重新安装部署solr项目,都要进行一次全量索引,创建全量索引参照以下。
.2.1 商品索引创建2.2 商铺索引创建

浙公网安备 33010602011771号