因为数据库的搜索性能低下,难以直接面对高并发访问,所以在分布式电商平台中引入了solr搜索服务,可以将solr看成是一个数据库,他可以通过从数据库导入到solr方式获取数据,也可以在用户添加商品的时候直接将商品信息添加到solr中。solr可以在高并发场景下提供高性能的搜索服务。
使用如下:
1.solr必须和tomcat结合,这里使用tomcat8.0.50版本,首先解压solr-4.10.3.zip,把解压的solr-4.10.3\example\webapps下的solr.war部署到tomcat中:(将apache-tomcat-8.0.50.zip解压后,把solr.war放到tomcat的apache-tomcat-8.0.50\webapps文件夹下,然后启动tomcat【运行startup.bat】)然后删除solr.war文件(关掉tomcat再删除【shutdown.bat】)
2.把solr-4.10.3\example\lib\ext 之下的.jar复制到apache-tomcat-8.0.50\webapps\solr\WEB-INF\lib之下
3. 创建solrHome(相当于solr的工作目录), 存放solr服务器所有配置文件的目录:
把solr-4.10.3\example\solr 复制到E:\solr文件夹下并改名"solrHome"
再把\solr-4.10.3\之下的contrib和dist两个目录复制到E:\solr文件夹中
4. 指定solr服务器的solrHome的位置
修改tomcat里的webapps文件夹下的solr工程的web.xml文件:(\apache-tomcat-8.0.50\webapps\solr\WEB-INF\web.xml)
<!--设置solr工程关联Tomcat服务器-->
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<!--在此处修改为之前创建的solr工程的路径-->
<env-entry-value>E:\solr\solrHome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
在web.xml文件中有一个已经注释的部分
<!--
<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>
-->
5. 启动tomcat,访问http://localhost:8080/solr/
作用:主要做一些搜索数据的测试, 最终通过solj客户端来访问solr服务器