solr7在tomcat上的部署
来源:互联网 发布:四川大学王牌专业知乎 编辑:程序博客网 时间:2024/06/05 11:03
1、前言
solr是基于lucence的企业级搜索服务器。之前使用的都是4.x版本,但是在5.x之后solr的目录结构已经发生了变化,不在提供war包。所以在tomcat部署的时候,稍有区别。尤其现在的最新版本已经是7.x了,部署的时候有一些变化。
2、solr7.1.0的示例启动
由于solr本身集成了jetty服务器,所以可以直接启动。在solr的bin文件加下执行:
solr start
在文件中也要相关提示:
3、启动效果
默认端口:8983
访问地址:http://localhost:8983/solr
4、solr7在tomcat上的部署
solr6.x以上都需要JDK1.8以上版本。这里使用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 -->
⑧取消权限控制,注释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> -->
⑨初始化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://10.100.210.35: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>
数据配置可以参考官方文档: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>
④自定义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"/>
⑤添加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>
⑥启动solr,数据导入。
⑦查询结果
7、数据导入注意事项
IK分词器最新版本是 IKAnalyzer2012FF_u1.jar,官方已经停止更新的。该最新版本不兼容solr7,使用的时候会无法分词。笔者这里导入的是网上大佬改进的版本。
在使用q查询的时候,如果想直接输入查询,需要在sorconfig中设置默认查询。
8、参考资料
博文资料: http://blog.csdn.net/tanzhen1991910/article/details/53488398(此博文有提供修改过的IK分词器)
官方资料:https://wiki.apache.org/solr
- solr7在tomcat上的部署
- Solr7 在tomcat服务器下的部署
- solr7.0.0 tomcat部署
- Silverlight5在Tomcat上的部署
- tomcat在window上的简单部署
- Tomcat 8.0 在 Windows 上的部署
- dubbo控制台在tomcat上的部署
- sringboot项目在tomcat上的部署
- Birt部署在Tomcat上
- Tomcat在Linux上部署
- activemq 在tomcat上部署
- cas 2.0.12在tomcat上的部署
- jbpm在tomcat和mysql上的迁移部署
- 基于lucene搜索引擎Solr在tomcat上的部署(一)
- 部署在Tomcat上应用程序的远程调试
- 关于maven工程部署在tomcat上的问题
- web项目在tomcat上不能部署的解决方法
- 部署在tomcat上的java web项目连接SQLservices
- Tarjan求割点
- [二分答案 DP检验 几何] BalkanOI 2017. Cruise
- 系统限制
- js日期格式化
- Sublime Text3自动保存的功能(失去焦点自动保存)
- solr7在tomcat上的部署
- [线段树 哈希] BalkanOI 2016. Haker
- CentOS 6.5 LVS+KeepAlived(DR模式)搭建高可用负载均衡集群
- $project
- 使用PC Tools时在板端执行HiPCTools.sh后报不能加载libstdc++.so.6的错误是怎么回事?
- 左侧滚动无滚动条
- 利用Eclipse搭建Linux内核开发环境
- Nginx + CGI/FastCGI + C/Cpp
- [数论 拓展欧拉定理] BalkanOI 2016. Power-towers