搜索引擎部署

下一章节提供了solr的docker image相关信息,使用docker部署的可以跳过本节直接使用或者重新编排solr docker image。

wrdoclet中的solr配置文件是针对solr4.7进行配置的。对于solr的部署步骤,这里只对solr单机模式的部署进行简单描述(使用Apache Tomcat容器)。集群模式的solrCloud部署,可参考单机模式以及solr的官方网站上集群模式部署步骤。

  • 下载wrdoclet-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

  • 将生成的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>

results matching ""

    No results matching ""