solr-7.7.2部署到tomcat8中详细步骤

1.Solr简介

       Solr是一个独立的企业级搜索应用服务器,它对外提供API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引(solr生成倒排索引,数据库生成的索引是二叉树索引,效率差距很大);也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。Solr是一个类似于Google或者Bing的全文检索引擎, Solr是与搜索引擎优化(SEO)相关联的。很多公司也使用elasticsearch作为搜索引擎。 

       Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

2.Solr安装

1、下载相关资源

        ① 下载solr压缩包:https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.2/solr-7.7.2.zip

       

         ②下载 中文分词:http://search.maven.org/#search%7Cga%7C1%7Ccom.github.magese 

          

2、 安装

①解压刚刚下载好的solr-7.7.2.zip ,解压后文件夹名称:solr-7.7.2;

②将 solr 压缩包中 solr-7.7.2\server\solr-webapp\文件夹下有个webapp文件夹,将之复制到Tomcat8\webapps\目录下,文件夹名改成solr;

③将solr-7.7.2/server/lib/ext目录下的所有jar包和复制粘贴到tomcat下的solr项目(即第二步操作的文件夹)的WEB-INF/lib目录下;

④solr-7.7.2\server\lib下metrics开头的5个jar包粘贴到tomcat8\webapps\solr\WEB-INF\lib下

⑤在tomcat下的solr项目的WEB-INF下新建classes文件夹,然后把solr-7.7.2/server/resources下的jetty-logging.properties粘贴过去;

⑥将solr-7.7.2/server/solr 下所有文件复制到计算机某个目录下,如D:\solr-home(solr创建的core到时会存放在该目录下);

⑦ 打开Tomcat/webapps/solr/WEB-INF下的web.xml,找到如下配置内容(初始状态下该内容是被注释掉的),如果找不就在<web-app>标签下添加:

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <!-- 此处需要将D:/solr-home 修改为你自己的路径 -->
       <env-entry-value>D:/solr-home</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> -->

 ⑧以上步骤完成后,启动Tomcat8,访问:http://localhost:8080/solr/index.html 界面如下,即安装成功(当然前提你tomcat 和jdk 都按照无误)

3、创建core

①在D:\solr-home下创建core2文件夹(名称与下图的instanceDir一致,建议下图中的name也和该文件夹名一致);

②在core文件夹下创建data和conf文件夹; 

③将solr-7.7.2\example\example-DIH\solr\solr\conf里所有文件和文件夹都copy到D:\solr-home\core2\conf下; 

④重启tomcat,访问http://localhost:8080/solr/index.html

添加成功后,在“Core Selector”这里可以查询和编辑你的solr相关信息; 

4、solr界面简介

5、中文分词器+数据库

①将下载好的ik-analyzer-solr7-7.x.jar 和solr-7.7.2/dist下的solr-dataimporthandler-7.7.2.jar、solr-dataimporthandler-extras-7.7.2.jar复制到 tomcat8\webapps\solr\WEB-INF\lib 下

②复制solr-7.7.2/example/example-DIH/solr/db/conf/下的db-data-config.xml到solr-home/core2/conf/下,此处改名为data-config.xml(可以不改名)。并修改data-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
  <dataSource type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver" 
              url="jdbc:mysql://192.168.1.15:3306/dny_shop?useUnicode=true&amp;characterEncoding=utf8" 
              user="tanlei" 
              password="root"/>
  <document>
    <!--指定需要导入的数据库表名,以及数据  -->
    <entity name="mobile_choiceness" dataSource="JdbcDataSource"
            query="select * from mobile_choiceness">
            <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) -->            
       			<field name="id" column="chs_id" />
       			<field name="release_time" column="release_time" />
       			<field name="viewed" column="viewed" />
       			<field name="content" column="content" />
       			<field name="like_number" column="like_number" />  	
       			<field name="chs_title" column="chs_title" />  	
       			<field name="chs_author" column="chs_author" />  	
       			<field name="status" column="status" />
    </entity>
  </document>
</dataConfig>

数据配置可以参考官方文档:https://wiki.apache.org/solr/DIHQuickStart

③修改同级目录中的 solrconfig.xml文件,在文末的标签</config> 上面添加如下信息:

<requestHandler name="/dataimport" 
   class="org.apache.solr.handler.dataimport.DataImportHandler">
		<lst name="defaults">
		  <str name="config">data-config.xml</str>
		</lst>
</requestHandler>

④修改D:\solr-home\core2\conf下managed-schema文件,添加IK分词器,在文末的</schema> 上添加:

<fieldType name="text_ik" class="solr.TextField">
	<analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

⑤自定义solr的字段,在第四步后面添加:

<!-- fieldType:可以自己定义type的类型,比如中文的分词器IKAnalyzer
field域:主要是用于数据存取的域,里面使用key,value存储数据。
name:类似于key,存储的文本名称
type:存储的数据类型
indexed:是否建立索引,也就是说能不能使用该域进行搜索查找。
stored:是否存储数据,一般对象的基本属性是存储的
multiValued:可以是多个值,和数组基本类似,格式[]-->
<field name="release_time" type="string" indexed="true" stored="true" />
<field name="viewed" type="string" indexed="true" stored="true" />
<field name="content" type="text_ik" indexed="true" stored="true" />
<field name="like_number" type="string" indexed="true" stored="true" />
<field name="chs_title" type="text_ik" indexed="true" stored="true" />
<field name="chs_author" type="text_ik" indexed="true" stored="true" />
<field name="status" type="string" indexed="true" stored="true" />
<field name="ik_keywords" type="text_ik" indexed="true" stored="false" required="true" multiValued="true"/>
<!-- copyField:复制域,主要是将指定的数据复制到某一个域对象中,以至于一个域可以存储多个域的信息,这样就方便构建默认搜索域就行搜索,非常的方便。-->
<copyField source="content" dest="ik_keywords"/>
<copyField source="chs_title" dest="ik_keywords"/>
<copyField source="chs_author" dest="ik_keywords"/>

注释:

文档中默认配置了:<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

每一个向solr添加的对象都需要一个唯一的id,这样可以保证每一份数据的唯一性(所以不需要自己再配主键ID)

⑥重启tomcat 导入数据

⑦查询数据 

 

SpringBoot整合Solr:https://blog.csdn.net/kelly921011/article/details/102640362 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值