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

[经验分享] solr安装笔记与定时器任务

[复制链接]

尚未签到

发表于 2017-3-2 12:23:53 | 显示全部楼层 |阅读模式
  一:solr启动
  目前solr最高版本为5.5.0版本,很多solr安装都是说将server文件copy到tomcat中,但是solr版本自带有jetty的启动方式
  首先下载solr-5.5.0版本,解压后文件目录:

  打开readme.txt ,发现有之下的几句话:

  告诉你使用命令行启动的方式,本机为windows系统,所以打开cmd(shift+邮件--->在此处打开命令端口),进入bin目录,输入命令solr start

  这样就算是启动成功了,可以直接在浏览器中输入http://localhost:8983 查看solr管理后台
  二:创建solr  core
  1.首先进入/server/solr 文件夹,创建一个文件夹,名称为你所建core的名称, 这里我的core取名为mark
  2.在mark目录下创建一个core.properties文件,里面写上:name=mark
  3.首先进入/server/solr/configsets/basic_configs,将conf目录copy到刚才的mark目录下
  4.将managed-schema文件修改为schema.xml 文件,这是solr比较核心的文件,用来定义索引
  先看看这个schema.xml文件
  第一行: ,将这个name改为我们自己的core名称:即mark
第113行定义了id,这个可以任意修改

167行定义了唯一主键,这个主键可以是任意的类型和字段,但必须是唯一非空的,当有重复的时候,solr将会替换掉之前所创建的索引。


  这里是一个默认的对文本的处理,其中配置的分词器,过滤器等。
  配置上这些其实就算成功创建了一个core,可以打开后台,可以看到新添加了要给core selector.
  三:配置solr 数据库导入
  solr有插件可以直接从数据库中导入数据,并创建索引。主要使用solr-dataimporthandler-5.5.0.jar
  首先在solrhome/dist 中找到 solr-dataimporthandler-5.5.0.jar,solr-dataimporthandler-extras-5.5.0.jar,solr-core-5.5.0.jar三个包,一并copy到solrhomt/server/lib中
  在网上下载一个mysql-connector-java.jar copy到solrhomt/server/lib中
  在我们自己的core  mark中,找到solrconfig.xml文件
  在这个文件的根节点下添加



<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   
<lst name="defaults">   
<str name="config">data-config.xml</str>   
</lst>   
</requestHandler>
  这是给solr服务器添加一个severlet,用来接收dataimport请求。其中配置文件data-config.xml与solrconfig.xml放在同一个目录下
  创建一个文件data-config.xml
  配置:



<dataConfig>   
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/morequ" user="root" password="root"/>
<document>
<entity name="mark" query="select id,value,type,datam_id,create_time  from mark where enable =0 "
deltaImportQuery="SELECT id,value,type,datam_id,create_time from mark where enable =0  and id='${dih.delta.id}'  "
deltaQuery="SELECT  id  from mark where enable =0 and create_time > '${dih.last_index_time}'" >
<field column="id" name="id" />
<field column="value" name="value" />
<field column="type" name="type" />
<field column="datam_id" name="datam_id" />
<field column="create_time" name="create_time"/>
</entity>
</document>
</dataConfig>
  使用dataimport需要一个配置properties,存放一些变量,新建dataimport.properties 文件放在与data-config.xml文件同目录下
  配置好重启solr
  在后台,我们看到了一个新的菜单:

  command可以选择是全量更新,还是增量更新。
  四:配置增量更新定时任务
  当有了数据导入后,并不能实现我们想要的功能,则需要一个定时任务的东西去定时导入增量数据:
  可以下载apache-solr-dataimportscheduler-1.0.jar 包,
  1.将apache-solr-dataimportscheduler-1.0.jar 放在solrhome/server/solr-webapp/WEB-INF/lib里
  注意,此包有一个问题,加载配置文件找不到
  原因在这个文件中,
  这里给他一个指定的文件路径:

  2. 放好jar包之后,需要配置配置文件
  下载jar的时候,如果下的是with source版本,则里面自带一个dataimport.properties 配置文件,
  注意,此时在solrhome/server/solr 中(注意,这里不是jar包的存放位置webapp),创建一个conf文件夹,将dataimport.properties放在conf中

  如果没有的这里贴出来配置文件:



    #################################################  
#                                               #  
#       dataimport scheduler properties         #  
#                                               #  
#################################################  
#  to sync or not to sync  
#  1 - active; anything else - inactive  
syncEnabled=1
#  which cores to schedule  
#  in a multi-core environment you can decide which cores you want syncronized  
#  leave empty or comment it out if using single-core deployment  
syncCores=mark
#  solr server name or IP address  
#  [defaults to localhost if empty]  
server=localhost
#  solr server port  
#  [defaults to 80 if empty]  
port=8983
#  application name/context  
#  [defaults to current ServletContextListener's context (app) name]  
webapp=solr
#  URL params [mandatory]  
#  remainder of URL  
#  增量更新的请求参数  
params=/dataimport?command=delta-import&clean=false&commit=true
#  schedule interval  
#  number of minutes between two runs  
#  [defaults to 30 if empty]  
#  这里配置的是2min一次  
interval=2
#  重做索引的时间间隔,单位分钟,默认7200,即5天;   
#  为空,为0,或者注释掉:表示永不重做索引  
reBuildIndexInterval=0
#  重做索引的参数  
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true
#  重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;  
#  两种格式:2012-04-11 03:10:00 或者  03:10:00,后一种会自动补全日期部分为服务启动时的日期  
reBuildIndexBeginTime=03:10:00
  3.打开solrhome\server\solr-webapp\webapp\WEB-INF\web.xml
  添加一个listener:



   <listener>  
<listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>  
</listener>
  
  4.重新启动solr,定时器任务则生效。
  参考资料:
  http://www.cnblogs.com/atyou/archive/2013/04/21/3033675.html

运维网声明 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-349329-1-1.html 上篇帖子: 利用CXF开发WebService的小案例 下篇帖子: Dubbo 源码安装与编译
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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