• tomcat和solr的整合——小步快跑


    前言

    近期因工作需要使用到solr查询,看了一下solr的功能:Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。【引用百度百科

    对于不同的solr版本所使用的JDK版本和JDK版本都有要求。

    本篇博客所研究的是两套部署

    目录

    前言

    整合篇一

    一、下载安装

    二、整合Tomcat

    三、创建core

    四、数据库配置-导入数据库索引


    整合篇一

    solr、JDK和tomcat版本

    版本
    SOLR solr-7.7.1
    JDK 1.8
    tomcat apache-tomcat-8.5.41
    SYSTEM windows10

    一、下载安装

    1. 因为这里是为了solr的学习而写的教程,所以JDK和tomcat的下载安装在这里就不(自)做(己)说(查)明(找),solr下载比较简单,在Apache Solr官网可以下载 https://lucene.apache.org/solr/downloads.html 找之前的版本,这里会呈现出所有版本以及各种样式下载(这个好似需要FQ才能够找到,不过相信你既然能找到这篇博客,找个solr应该不算难题)

    下载完毕后直接解压就可以使用,解压目录大概是这样的

    二、整合Tomcat

    • 将 solr-7.1.0serversolr-webapp 目录下的 webapp 文件夹拷贝到Tomcat的  apache-tomcat-8.5.41webapps 文件夹下,并修改文件名为 solr (更名非必要)
    • 将 solr-7.1.0serverlibext 目录下的所有jar包拷贝到 apache-tomcat-8.5.41webappssolrWEB-INFlib 文件夹下
    • 将 solr-7.1.0serverlib 目录下的 metrics-* 和 gmetric4j-1.0.7.jar 拷贝到 同上文件夹下
    • 将 solr-7.1.0server esources目录下的log4j.properties文件拷贝到 apache-tomcat-8.5.41webappssolrWEB-INFclasses目录下,默认没有classes目录,自己创建
    • 将 solr-7.1.0server 下的 solr目录拷贝到 apache-tomcat-8.5.41webappssolr 下,更改名称为solrhome(这个位置可以选择任意磁盘,名称自定义)
    • 更改 apache-tomcat-8.5.41webappssolrWEB-INF 目录下的 web.xml 文件,此版本中被注释掉了,解开·注释修改<env-entry-value> 标签内容为 5步骤中的文件夹的位置。 去掉安全验证代码,不然每次登陆都需要用户名密码验证,麻烦,还有有一种说法:项目会报403错误。
    ···
    
    <env-entry>
         <env-entry-name>solr/home</env-entry-name>
         <env-entry-value>D:solr-serverapache-tomcat-8.5.41webappssolrsolrhome</env-entry-value>
         <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    
    ···
    
     <!-- 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> -->

    solrhome 是solr的核心目录,主要的配置文件,索引以及基本数据的保存,插件和数据库的集成都是在此目录下进行配置。进行到此solr和tomcat就算是整合完成了,下面启动测试  http://127.0.0.1:8080/solr/index.html

    三、创建core

    关于core的创建有两种方式,一种是通过页面先创建(肯定不会成功)然后在导入所需文件才能成功创建,再点击创建才能够成功(不推荐),第二种是手动创建core 核心目录以及所需文件然后在页面点击创建(推荐), 本文采用第二种方式创建core。

    • 在 apache-tomcat-8.5.41webappssolrsolrhome 目录下创建一个名为 myfirstcore 的文件夹作为第一个core
    • 将 D:solr-serverapache-tomcat-8.5.41webappssolrsolrhomeconfigsets\_default 目录下的conf 文件夹拷贝到 myfirstcore 目录下 ,并在myfirstcore 目录下创建一个空文件夹 data  

     

    四、数据库配置-导入数据库索引

    • 在 apache-tomcat-8.5.41webappssolrWEB-INFlib 目录下放入数据库连接的jar包 mysql-connector-java-5.1.34.jar
    • 拷贝 solr-7.1.0dist 目录下的 solr-dataimporthandler-7.1.0.jar 和 solr-dataimporthandler-extras-7.1.0.jar 包到 apache-tomcat-8.5.41webappssolrWEB-INFlib目录下
    • 拷贝solr-7.1.0exampleexample-DIHsolrdbconf 目录下的 db-data-config.xml 文件到  apache-tomcat-8.5.41webappssolrsolrhomemyfirstcoreconf 目录下改名为 data-config.xml (自定义)内容替换如下
    <dataConfig>
      <dataSource type="JdbcDataSource" 
                  driver="com.mysql.jdbc.Driver"
                  url="jdbc:mysql://127.0.0.1:3306/ssmertong" 
                  user="root" 
                  password="root"/>
      <document>
        <!--指定需要导入的数据库表名,以及数据 -->
        <entity name="child" 
                query="select id,name,sex,minzu,hukou from child">
        </entity>
      </document>
    </dataConfig>
    
    •  修改 solrconfig.xml 文件,添加数据导入信息,放入<config> 的下级(此处在88行左右处)
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    		<lst name="defaults">
    		  <str name="config">data-config.xml</str>
    		</lst>
    </requestHandler>
    •  修改solr自定义字段,在managed-schema 文件中添加 field,位置放于跟文件中大概113行的field后面即可,id默认已经给出
        <field name="name" type="string" indexed="true" stored="true" multiValued="false"/>
        <field name="sex" type="string" indexed="false" stored="true" multiValued="false"/>
        <field name="minzu" type="string" indexed="true" stored="true" multiValued="false"/>
        <field name="hukou" type="string" indexed="true" stored="true" multiValued="false"/> 

    启动Tomcat 测试用例选择自己创建的 core  myfirstcore 在Entity 中选择自己定义的实例 child  然后选中 下方 Auto-Refresh Status ,当数据较多时会自动进行下一组数据的导入。点击Execute 开始导入数据索引

    数据导入完成,下面进行查询测试,在页面中 Query中直接点击 Execute Query 查询

    此次整合就算是告一段落了。

  • 相关阅读:
    【sqli-labs】 less37 POST- Bypass MYSQL_real_escape_string (POST型绕过MYSQL_real_escape_string的注入)
    【sqli-labs】 less36 GET- Bypass MYSQL_real_escape_string (GET型绕过MYSQL_real_escape_string的注入)
    【sqli-labs】 less35 GET- Bypass Add Slashes(we dont need them) Integer based (GET型绕过addslashes() 函数的整型注入)
    【sqli-labs】 less34 POST- Bypass AddSlashes (POST型绕过addslashes() 函数的宽字节注入)
    【sqli-labs】 less33 GET- Bypass AddSlashes (GET型绕过addslashes() 函数的宽字节注入)
    【sqli-labs】 less31 GET- Blind -Impidence mismatch -Having a WAF in front of web application (GET型基于盲注的带有WAF注入)
    iptables(3)
    iptables(2)
    iptables(1)
    rsync服务部署
  • 原文地址:https://www.cnblogs.com/cosmosray/p/13268792.html
Copyright © 2020-2023  润新知