当Core较多时,每个core都需要管理自己的数据库的配置信息,这样不便于管理和更改,所以需要统一配置数据源.
由于使用solr自带的服务器无法自定义配置,所以需要将solr部署到Tomcat中,具体步骤如下 (在完成前面操作的情况下)
- 将solr6.6.1/server/server-webapp/目录下的webapp文件夹,复制粘贴到tomcat下的webapps下。 将webapp文件夹改成solr
- 将solr-6.6.1/server/solr目录备份一份到任路径下并重命名为solr-home, 如 D:/solr-home 这里保存的是所有的Core的信息
- 修改tomcat下的solr项目的WEB-INF/web.xml,这一步用来指定默认的solr/home
更改<env-entry-value>中的值为:D:/solr-home 然后取消该注释
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/solr-home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
同时把最后面的<security-constraint>节点注释掉,与权限相关,会导致访问的时候报403
在tomcat下的solr项目的WEB-INF下创建classes目录,然后把solr-6.6.1/server/resources下的log4j.properties粘贴过去
把solr-6.6.1/server/lib下的
metrics-core-3.1.2.jar,
metrics-ganglia-3.1.2.jar,
metrics-graphite-3.1.2.jar,
metrics-jetty9-3.1.2.jar,
metrics-jvm-3.1.2.jar
solr-6.6.1/server/lib/ext目录下的所有jar包、
solr-6.4.1/dist下的solr-dataimporthandler-6.4.1.jar、solr-dataimporthandler-extras-6.4.1.jar
还有一个MySQL的JDBC jar包
这几个jar包放到tomcat下的solr项目的WEB-INF/lib目录下修改tomcat/conf/context.xml,在此处配置统一的数据源
<Resource
name="jdbc/mysql_connect"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/grdd_test"
username="root"
password="root"/>
对应db-data-config.xml文件中的更改
旧配置
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/grdd_test" user="root" password="root" />
新配置
<dataSource name="jdbc" jndiName="java:comp/env/jdbc/mysql_connect" type="JdbcDataSource" batch-size="1000" />
参考链接