solr(一)solr的安装及权限控制
最近使用并维护过solr,一直没时间总结,抽出时间总结了一下它的使用方法,分几次分享给大家,那就直接重头开始来吧...
内容:
1. Solr的版本要求、安装教程及权限控制
一:版本安装要求:
Solr的版本6.0.0以上的都要求jdk8.0及以上。
(Solr各版本发布时间、对应的JDK版本、Jetty版本(http://blog.****.net/jiangchao858/article/details/52443745#t2))
二:solr下载
http://archive.apache.org/dist/lucene/solr/7.1.0/
三:安装solr到tomcat
1.解压solr
Bin目录:脚本
Contrib目录:包含一些solr的一些插件或扩展。
--analysis-extras: 包含一些文本分析组件及其依赖
--clustering: 包含一个用于集群搜索结果的引擎
--dataimporthandler: 把数据从数据库或其它数据源导入到solr
--extraction: 整合了Apache Tika。Tika是用于解析一些富文本(诸如Word,PDF)的框架
--langid: 检测将要索引的数据的语言
--uima: 包含用于整合Apache UIMA(文本元数据提取的框架)类库
--velocity:包含基于Velocity模板的简单的搜索UI框架
Dist目录:包含主要的Solr .jar文件。
Docs目录:包含一个指向Solr在线Javadocs的链接。
example:包含一些展示solr功能的例子。
licenses:包含所有的solr所用到的第三方库的许可证。
server:solr应用程序的核心:包含了运行Solr实例而安装好的Jetty servlet容器。
--contexts:这个文件包含了solr Web应用程序的Jetty Web应用的部署的配置文件;
--etc:主要就是一些Jetty的配置文件和示例SSL**库;
--lib:Jetty和其他第三方的jar包;
--resources:Jetty-logging和log4j的属性配置文件;
--solr:新建的core或Collection的默认保存目录,里面必须要包含solr.xml文件
--configsets:包含solr的配置文件
--solr-webapp:包含solr服务器使用的文件;不要在此目录中编辑文件(solr不是JavaWeb应用程序)
2.拷贝移动
把 solr-7.1.0\server\solr-webapp下的 webapp 文件夹拷贝到tomcat 的webapps下,重命名为solr,也可以是其他名字;
( 注意,此处有的教程错误的将solr-webapp文件夹进行拷贝,这会导致solr启动不了)
3 拷贝jar包
(1)拷贝solr-7.1.0\server\lib\ext 下的
jcl-over-slf4j-1.7.7.jar
jul-to-slf4j-1.7.7.jar
log4j-1.2.17.jar
slf4j-api-1.7.7.jar
slf4j-log4j12-1.7.7.jar
这部分jar包到 tomcat\webapps\ 下solr 项目的WEB-INF\lib下;
(2)拷贝solr-7.1.0\dist 下的
solr-dataimporthandlerjar
solr-dataimporthandler-extras-6.2.0.jar
这部分jar包到 tomcat\webapps\ 下solr 项目的WEB-INF\lib下;
(3)拷贝solr-7.1.0\serve\lib\下的(度量相关的包)
metrics-core-3.2.2.jar
metrics-ganglia-3.2.2.jar
metrics-graphite-3.2.2.jar
metrics-jetty9-3.2.2.jar
metrics-jvm-3.2.2.jar
这部分jar包到 tomcat\webapps\ 下solr 项目的WEB-INF\lib下;
4创建solrhome
拷贝solr-7.1.0\server下的solr文件夹到E盘或其它非中文目录下,重命名为solrhome;
5 配置solrhome
修改tomcat\webapps\solr(solr的项目名)\WEB-INF\web.xml,找到如下代码,去掉注释,/put/your/solr/home/here改为你自己的solrhome的路径,如:E:/solr-home
6 配置日志文件
拷贝solr-7.1.0\server\resources下的log4j.properties到tomcat\webapps\solr\WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹。
7 去掉权限
在tomcat solr下的web.xml 注意最后一段话注释了
<!-- Get rid of error message -->
<!--<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Enable everything but TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method-omission>TRACE</http-method-omission>
</web-resource-collection>
</security-constraint> -->
增加权限控制方法:
(1) 将tomcat solr下的web.xml 最后一段话权限改为
<security-constraint>
<web-resource-collection>
<web-resource-name>Restrict access to Solr admin</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>solr</role-name>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>default</realm-name>
</login-config>
(2) 在tomcat /conf下的tomcat-users.xml文件最后增加:
<role rolename="solr"/>
<user username="admin" password="admin"roles="solr"/>
8 启动tomcat,输入http://localhost:8080/solr/index.html看到如下界面: