tomcat下部署solr服务器

tomcat下部署solr7.7.3教程

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
tomcat下部署solr服务器_第1张图片

     ②下载 中文分词: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,找到如下配置内容(初始状态下该内容是被注释掉的),如果找不就在标签下添加:

<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 都按照无误)
tomcat下部署solr服务器_第2张图片

3、创建core
首先去/solr-7.7.2/server/solr/ 创建一个名字为new_core(文件名可以自定义)的文件夹

然后拷贝solr目录下F:\solr-7.7.3\server\solr\configsets\sample_techproducts_configs下的conf目录拷贝到new_core目录下

④重启tomcat,访问http://localhost:8080/solr/index.html
tomcat下部署solr服务器_第3张图片

添加成功后,在“Core Selector”这里可以查询和编辑你的solr相关信息;
tomcat下部署solr服务器_第4张图片

4、solr界面简介
tomcat下部署solr服务器_第5张图片
tomcat下部署solr服务器_第6张图片
tomcat下部署solr服务器_第7张图片
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&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文件,在文末的标签 上面添加如下信息:

<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分词器,在文末的 上添加:

<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"/>

注释:

文档中默认配置了:

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

⑥重启tomcat 导入数据

⑦查询数据

你可能感兴趣的:(tomcat下部署solr服务器)