2019独角兽企业重金招聘Python工程师标准>>>

1、前言

solr是基于lucence的企业级搜索服务器。之前使用的都是4.x版本,但是在5.x之后solr的目录结构已经发生了变化,不在提供war包。所以在tomcat部署的时候,稍有区别。尤其现在的最新版本已经是7.x了,部署的时候有一些变化。

2、solr7.1.0的示例启动

由于solr本身集成了jetty服务器,所以可以直接启动。在solr的bin文件加下执行:

solr start
1

在文件中也要相关提示:

3、启动效果

默认端口:8983
访问地址:http://localhost:8983/solr

4、solr7在tomcat上的部署

solr6.x以上都需要JDK1.8以上版本,solr7要用tomcat8才能启动。这里使用JDK1.8+tomcat8+solr7.x部署。
#####①准备环境:安装JDK1.8,tomcat8
#####②将solr-7.1.0/server/solr-webapp/下的webapp复制到apache-tomcat-8.5.23/webapps/下并且重命名(可以随意命名),这里命名为solr。

#####③复制solr-7.1.0/server/lib/ext下的所有jar,到apache-tomcat-8.5.23/webapps/solr/WEB-INF/lib/下。(没错,这个就是那个重命名solr下的WEB-INF/lib)
#####④复制solr-7.1.0/server/lib/下metrics相关的jar,到apache-tomcat-8.5.23/webapps/solr/WEB-INF/lib/下。

#####⑤复制solr-7.1.0/server/resources下的log4j.properties文件,到apache-tomcat-8.5.23/webapps/solr/WEB-INF/下的classes文件夹中。(classes文件夹如果没有需要自己创建,这是日志文件)
#####⑥创建solrhome:复制solr-7.1.0/server/下的solr文件夹,到任意目录处(可以重新命名,这里重命名为solr-home,笔者solrhome路径为:D:\20161010\test-demo\solr-test-7.1.0\solr-home),自定义solrhome。

#####⑦配置solrhome路径:修改apache-tomcat-8.5.23/webapps/solr/WEB-INF/下的web.xml文件。

<!-- 方法1:默认代码为注释状态。放开之后,替换<env-entry-value></env-entry-value>中间的值为自己的solrhome -->
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:/20161010/test-demo/solr-test-7.1.0/solr-home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

<!--
     方法2:
     修改tomcat的配置文件, 在apache-tomcat-8.5.23/bin/catalina.bat文件中的第二行加配置参数。也就是@echo off下面一行。
     
    set "JAVA_OPTS=-Dsolr.solr.home=D:/20161010/test-demo/solr-test-7.1.0/solr-home
    --> 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#####⑧取消权限控制,注释web.xml中的最后几行代码。否则项目会包403.

<!-- 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>
  
  -->
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#####⑨初始化solr-home的数据,在solr-home文件下建一个core1(名字随意取),复制solr-home/configsets/_default/下的conf文件夹,到新建的core1下,在core1下创建文件夹data(空文件加即可)和core.properties(内容只配置name=core1即可,这里的name的值也就是再页面要显示的solrhome名称)

#####⑩访问http://localhost:8080/solr/index.html

选择自定义的core1,可以看到core1的相关信息。(部署over)

5、tomcat部署solr注意事项

tomcat7和solr7不兼容,同样的方法使用tomcat7,访问有异常。

core建立的时候,只要复制conf即可启动访问,data和core.properties可以通过窗口创建。

6、自定义core,导入数据库索引

这里自定义的core为core2,以此为例。

#####①引入jar依赖:在apache-tomcat-8.5.23/webapps/solr/WEB-INF/lib/引入mysql的驱动(mysql-connector-java-5.1.32.jar),复制solr-7.1.0/dist/下的solr-dataimporthandler-7.1.0.jar和solr-dataimporthandler-extras-7.1.0.jar,到apache-tomcat-8.5.23/webapps/solr/WEB-INF/lib/的下面。
#####②复制solr-7.1.0/example/example-DIH/solr/db/conf/下的db-data-config.xml到solr-home/core2/conf/下,此处改名为data-config.xml(可以不改名)。修改内容的结果为:

<dataConfig>
  <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://127.0.0.1:3306/数据库名" 
              user="root" 
              password="root"/>
  <document>
    <!--指定需要导入的数据库表名,以及数据 -->
    <entity name="lsh_information" 
            query="select id,title,content,create_user_name,create_time from lsh_information">
    </entity>
  </document>
</dataConfig>
1
2
3
4
5
6
7
8
9
10
11
12
13
数据配置可以参考官方文档:https://wiki.apache.org/solr/DIHQuickStart
#####③修改solrconfig文件,添加导入信息。该信息必须放在requestHandler标签的同级位置。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
          <str name="config">data-config.xml</str>
        </lst>
    </requestHandler>
1
2
3
4
5
#####④自定义solr的字段,在managed-schema文件中添加filed字段。(位置放在 text 字段后面即可)

<field name="title" type="text_ik" indexed="true" stored="true" multiValued="false"/>
    <field name="content" type="string" indexed="false" stored="true" multiValued="false"/>
    <field name="create_user_name" type="string" indexed="true" stored="true" multiValued="false"/>
    <field name="create_time" type="pdate" indexed="true" stored="true" multiValued="false"/> 
1
2
3
4
#####⑤添加IK分词器,引入IK分词器的依赖到apache-tomcat-8.5.23/webapps/solr/WEB-INF/lib/下,配置IK分词器(注意:放在fieldType同级附近)。

<fieldType name="text_ik" class="solr.TextField">
    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
1
2
3
#####⑥启动solr,数据导入。

#####⑦查询结果

7、数据导入注意事项

IK分词器最新版本是 IKAnalyzer2012FF_u1.jar,官方已经停止更新的。该最新版本不兼容solr7,使用的时候会无法分词。笔者这里导入的是网上大佬改进的版本。

在使用q查询的时候,如果想直接输入查询,需要在sorconfig中设置默认查询。

8、参考资料

博文资料: http://blog.csdn.net/tanzhen1991910/article/details/53488398(此博文有提供修改过的IK分词器)

官方资料:https://wiki.apache.org/solr

转载于:https://my.oschina.net/redpotato/blog/3054605

solr7在tomcat上的部署相关推荐

  1. android 服务端 servlet webservice,Tomcat 上如何部署Servlet及Android中如何与服务器通信(12页)-原创力文档...

    Tomcat 上如何部署Servlet及Android中如何与服务器通信 下载Tomcat并安装 Apache Tomcat powers numerous large-scale, mission- ...

  2. 在Tomcat上安装部署SAIKU

    在Tomcat上安装部署SAIKU Saiku是一个强大的独立工具,用于查询构建数据集市,如:即席查询报表.图表展示.导出报表成excel或csv格式等.Saiku是基于Mondrian OLAP引擎 ...

  3. 解决在Tomcat上手动部署WAR服务器不能自动解压的方法

    手动部署文件的方式有很多,其中一个方法是将项目打包成war包,放置到webapps目录下,正常效果是Tomcat自动解压war包,项目至此部署成功,但第一次部署时失效,我首先怀疑Tomcat版本的问题 ...

  4. 在tomcat上全手工部署Servlet3.0

    从头写java文件的方式,编译成CLASS文件,加强对SERVLET容器的理解. 稍后试试JAR和WAR包. 文件内容(跟以前用IDE的一样): HelloServlet.java: package ...

  5. 从零开始写项目第八篇【将未完成的项目发布在Tomcat上】

    tags: 从零开发项目, title: 从零开始写项目第八篇[将未完成的项目发布在Tomcat上] 将项目打包成war包 我使用的是Maven来构建项目的,因此打war包也是非常方便的. 参考链接: ...

  6. 在tomcat上部署项目,实现类似添加这样的功能之后,tomcat要运行很久,解决办法

    今天在做软件测试作业的时候遇到了这样一个问题 在tomcat上部署项目,实现类似添加这样的功能之后,一大串子代码不停的在滑动,要运行很久,才会结束,之后上网上查询资料,试着将项目删除重新导入之后,就恢 ...

  7. 如何把springboot项目部署到tomcat上

    文章目录 一. 企业发布场景 1. 首次发布 2. 非首次发布 3. 全量发布和增量发布概念和区别 二.springboot部署tomcat 2.1. 创建Web初始化类 2.2. 修改打包方式 2. ...

  8. eclipse配置tomcat,并部署一个Java web项目到tomcat上

    eclipse配置tomcat 1.windows--preference 2.server--Runtime  Environment 3.Add 下图中第2表示:选中自己安装tomcat的目录 创 ...

  9. JAX-WS(三)构建简单webservice部署到tomcat上

    前言: 虽然构建本地的jax-ws的webservice很简单,但要部署到tomcat上要绕过点弯. tomcat本身和jdk都没有jaw-ws的API,所以部署的时候需要额外做点事情,有两种选择 1 ...

最新文章

  1. 承载物联之城 阿里云为无锡建设统一物联网基础平台
  2. hyperledger fabric v2.4 默认区块大小 配置文件位置
  3. opengl入门(ubuntu版)(一)
  4. 科研人员还需学python吗_为什么我建议每个开发人员都需要学 Python ?
  5. 关于EasyCVR平台Ehome协议接入设备出现停止启用现象的原因分析
  6. Android上Excel编辑器,Excel表格编辑器下载-Excel表格编辑器appv1.1.02 最新版-腾牛安卓网...
  7. 如何升级 Win10 系统
  8. GODI2018基站
  9. pycharm 将本地文件添加到library root
  10. JavaScrip笔记心得(持续更新)
  11. 阿里云安装nacos
  12. js 获取开始时间和结束时间相隔小时及分钟(时间戳操作)
  13. 去除Opera与迅雷的关联
  14. mysql游戏名称_MySQL 游戏排行榜
  15. MOOC 数据结构 08-图7 公路村村通——C语言
  16. list集合交集,并集
  17. PPT:智能仓储系统规划实战
  18. OA平台——协同管理与办公自动化
  19. 参加面试除了带简历外还要带哪些去面试
  20. 抖音如何快速吸粉?真实案例教你实操疯狂吸粉

热门文章

  1. [已解决] org.hibernate.AnnotationException:未为实体类指定标识符
  2. c语言指针++_C和C ++中的指针
  3. java功能模块_Java 14功能
  4. 开展人力资源数据分析的目的和原因
  5. 人工智能时代,技术人员应该掌握的技能
  6. linux修改文件的权限和修改文件所有者和所属组
  7. [BZOJ3684]大朋友和多叉树
  8. 快速学懂pandas
  9. FreeNAS 安装与用户指导页
  10. python操作mysql(一)MySQLdb模块安装和数据库基本操作