设为首页 收藏本站
查看: 1106|回复: 0

[经验分享] 在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器

[复制链接]

尚未签到

发表于 2017-12-19 18:33:22 | 显示全部楼层 |阅读模式
  最近在研究solr,这里只记录一下eclipse中构建solr项目,添加core,整合mysql,添加中文分词器的过程。
  版本信息:solr版本6.2.0+tomcat8+jdk1.8
  推荐阅读:solr中文官方文档
  参考:solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用
  在eclipse中构建solr项目:
  1.下载solr-6.2.0.zip,官网下载地址:http://lucene.apache.org/solr/downloads.html。
  2.在eclipse中创建web项目solr。
  3.将solr-6.2.0\server\solr-webapp\webapp下的内容复制到solr工程的webapp下。
  4.将solr-6.2.0\server\lib\ext下的jar包,复制到solr工程的WEB-INF/lib中。
  5.将solr-6.2.0\server\resources\log4j.properties文件复制到solr工程的source folder中。
  6.在solr工程的webapp文件夹下,新建文件夹solrhome,将solr-6.2.0\server\solr下的文件夹以及文件copy到solrhome中。此时项目组成如下图:
DSC0000.png

  7.修改web.xml文件,修改env-entry-value的值为"../webapps/solr/solrhome"。(如果env-entry-type报错,把标签env-entry-type放到env-entry-value前面即可)
DSC0001.png

  8.启动tomcat,访问http://localhost:8080/solr/index.html,如下图说明构建成功。
DSC0002.png

  solr添加core:
  1.复制solr项目的solrhome/configsets/basic_configs文件夹到solrhome下,并改成任意名字(这里我的core名称是coretest)。
DSC0003.png

  2.在solr项目页面中添加core,下图中coretest对应上面创建的文件夹名称,dataDir指定记录core的数据信息的文件夹,config和schema是core的配置文件,在文件夹coretest/conf下面可以找到。
DSC0004.png

  创建完成后如图:
DSC0005.png

  整合mysql:
  1.找到tomcat目录下的webapps\solr\solrhome\coretest文件夹,复制core.properties到solr项目的webapp/solrhome/coretest目录下。(core.properties保存的是上一步创建的core的配置信息,solr启动后会查找该文件,用来恢复core,可以忽略该步骤,但是当启动solr时需要重新添加core)
  2.创建一个mysql数据表,并添加一些基础数据,建表语句:
  

DROP TABLE IF EXISTS `solrtest`;  

CREATE TABLE `solrtest` (  `id`
int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',  `context`
varchar(255) DEFAULT NULL COMMENT 'context',  `updateTime`
datetime DEFAULT NULL COMMENT 'updateTime',  `sort`
int(11) DEFAULT '1',PRIMARY KEY (`id`)  
) ENGINE
=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;  

  INSERT INTO `solrtest` VALUES ('1', 'qweqwe', '2017-02-04 09:21:56', '1');
  INSERT INTO `solrtest` VALUES ('2', '足球', '2017-02-04 11:55:02', '1');
  INSERT INTO `solrtest` VALUES ('3', '足球篮球', '2017-02-04 11:55:14', '1');
  INSERT INTO `solrtest` VALUES ('4', '足球篮球羽毛球', '2017-02-04 16:27:41', '1');
  3.修改coretest/conf文件夹下的solrconfig.xml文件,增加代码:
  

<requestHandler name="/dataimport">  <lst name="defaults">
  <str name="config">solr-data-config.xml</str>
  </lst>
  
</requestHandler>
  

  4.在同级目录下创建solr-data-config.xml文件,并添加代码:
  

<dataConfig>  <dataSource type="JdbcDataSource"   
  driver="com.mysql.jdbc.Driver"   
  url="jdbc:mysql://localhost:3306/solrtest"   
  user="root"   
  password="root"/>  
  <document name="solr_mysql_test">  
  <entity name="solrtest" pk="id" query="select * from solrtest"

  deltaImportQuery="select * from solrTest where>
  deltaQuery="select>  <field column="id" name="id"/>   
  
   <field column="context" name="context"/>   
  <field column="updateTime" name="updateTime"/>   
  <field column="sort" name="sort"/>           
  </document>  
  
</dataConfig>
  

  5.在同级目录打开 managed-schema.xml ,在其中增加如下代码。(其中注释掉的name为id的field,是因为managed-schema.xml默认就有id字段,不注释会产生冲突。)
  

    <!-- <field name="id" type="string" required="true" indexed="true" stored="true" multiValued="false"/>  -->  <field name="context" type="string" indexed="true" stored="true" multiValued="false"/>  
  <field name="updateTime" type="date" indexed="true" stored="true" multiValued="false"/>  
  <field name="sort" type="int" indexed="true" stored="true" multiValued="false"/>
  

  6.将下载的solr-6.2.0/dist文件夹下的jar包复制到WEB-INF/lib下(主要是solr-dataimporthandler-6.2.0.jar和solr-dataimporthandler-extras-6.2.0.jar),将mysql的驱动jar包复制到WEB-INF/lib下。
  7.启动tomcat,登陆solr页面,导入数据:打开Dataimport页面,勾选Auto-Refresh Status然后Execute即可。
DSC0006.png

  完成后查询数据:
DSC0007.png

  添加中文分词器 :
  1.这里我使用的中文分词器是IKAnalyzer,首先需要到网上下载IKAnalyzer的jar包,我使用的jar包是ik-analyzer-solr5-5.x.jar。
  2.把ik-analyzer-solr5-5.x.jar 放到\WEB-INF\lib 中。
  3.在managed-schema.xml文件中添加分词器配置。(这里分词器名称是text_ik)
  

   <!-- IKAnalyzer中文分词器.如果版本与solr对应不上,会报抽象方法错误 -->  
<fieldType name="text_ik">  
  <!--索引时候的分词器-->  
  <analyzer type="index" isMaxWordLength="false"/>  
  <!--查询时候的分词器-->  
  <analyzer type="query" isMaxWordLength="true"/>  
  
</fieldType>
  

  4.在managed-schema.xml文件中对某个field使用分词器text_ik:
  

<field name="context" type="text_ik" indexed="true" stored="true" multiValued="false"/>  

  完成后查询测试:
DSC0008.png

  其他:
  导入数据完成后,tomcat的webapps\solr\solrhome\coretest文件夹下应该会多出文件夹data和配置文件core.properties,其中core.properties记录core的配置信息,solr启动后会查找该文件,用来恢复core,data文件夹记录core的数据信息,用来恢复core的数据,如果没有的话,需要重新import数据。
DSC0009.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425786-1-1.html 上篇帖子: solr删除数据的4种方便快捷的方式 下篇帖子: 实战:考虑性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表