搜索引擎部署
下一章节提供了solr的docker image相关信息,使用docker部署的可以跳过本节直接使用或者重新编排solr docker image。
wrdoclet中的solr配置文件是针对solr4.7进行配置的。对于solr的部署步骤,这里只对solr单机模式的部署进行简单描述(使用Apache Tomcat容器)。集群模式的solrCloud部署,可参考单机模式以及solr的官方网站上集群模式部署步骤。
下载安装Tomcat 8.0.5
编辑%TOMCAT_HOME%/conf/tomcat-users.xml
<role rolename="manager-gui"/> <user username="admin" password="password" roles="manager-gui"/>
下载solr 4.7.1。 因为使用的中文分词插件只适配到该版本,因此请下载该指定版本的solr。
解压下载的solr zip文件,并拷贝solr-4.7.1/dist/solr.4.7.1.war到%TOMCAT_HOME%/webapps,并将其重命名为solr.war
解压新拷贝的solr.war (如果在上一步骤后尝试启动tomcat,tomcat应该会自动解压该war包)
更新%TOMCAT_HOME%/conf/server.xml
<Connector port="8983" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
创建solr.xml文件放于%TOMCAT_HOME%/conf/Catalina/localhost,内容如下(根据自身情况调整相关配置路径):
<?xml version="1.0" encoding="UTF-8" ?> <Context docBase="D:/Tools/apache-tomcat-8.0.5/webapps/solr.war" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/D:/Git/wrdoclet/wrdoclet-solr" override="true"/> </Context>
拷贝solr-4.7.1/dist/solrj-lib/下的所有jar包到%TOMCAT_HOME%/webapps/solr/WEB-INF/lib/
拷贝solr-4.7.1/dist/下的所有jar包到%TOMCAT_HOME%/webapps/solr/WEB-INF/lib/
将生成的ik-analyzer-4.7.1.jar拷贝到%TOMCAT_HOME%/webapps/solr/WEB-INF/lib/
创建目录 %TOMCAT_HOME%/webapps/solr/WEB-INF/classes/
拷贝 solr-4.7.1/example/resources/log4j.properties %TOMCAT_HOME%/webapps/solr/WEB-INF/classes
拷贝ik-analyzer下的IKAnalyzer.cfg.xml,ext.dic,stopword.dic到%TOMCAT_HOME%/webapps/solr/WEB-INF/classes
编辑wrdoclet-solr/apidocs/conf中solrconfig.xml 需要根据solr的安装目录修改对应jar包所在路径
启动tomcat
在生成接口文档时通过参数指明搜索引擎的服务地址
"-searchengine",
"http://127.0.0.1:8080/solr/apidocs",
需要注意的是直接将solr服务暴露在外网是存在安全隐患的。所以建议是另外搭建一个反向代理服务器,把solr服务保护在内网,反向代理服务器只提供必要的文档查询服务。
下面是采用apache2作为反向代理的一个例子,删除文档的功能被注释掉了,如果需要删除文档的功能,则可以取消注释。
<VirtualHost *:80>
......
# Header set Access-Control-Allow-Origin http://wrdoclet.weirong.li
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
# ProxyPass /solr/apidocs/update http://127.0.0.1:8081/solr/apidocs/update nocanon
ProxyPass /solr/apidocs/select http://127.0.0.1:8081/solr/apidocs/select nocanon
ProxyPass /solr/apidocs/search http://127.0.0.1:8081/solr/apidocs/search nocanon
AllowEncodedSlashes NoDecode
</VirtualHost>