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

[经验分享] 第三步solr实现MySQL 数据库数据表索引

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-22 08:23:46 | 显示全部楼层 |阅读模式
1、修改索引地址:任意位置皆可,本文在E:solr下建了一个data文件夹,然后修改E:solrcollection1confsolrconfig.xml 下的dir: 为创建的索引地址路径
1
<dataDir>${solr.data.dir:E:/solr/data}</dataDir>






2、建立数据库为es_data,在其下面建立一个名为news的数据表
wKiom1S_W56SCgJcAAIsTXIhzKc659.jpg
3、在E:solrcollection1conf下新建一个data-config.xml文件,在里面添加以下代码:注(用户名、密码、数据库、数据表)
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8" ?>   
<dataConfig>   
    <dataSource name="dstest" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"   
        url="jdbc:mysql://localhost:3306/es_data?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true" user="root" password="111111" />
     <document>
        <entity name="news" query="select id,title,content,update_time from news">
            <field column="id" name="id" />
            <field column="title" name="title" />
            <field column="content" name="content" />
            <field column="update_time" name="update_time" />
        </entity>
    </document>
</dataConfig>




4、solr关联数据库:在E:solrcollection1confsolrconfig.xml 下找到相应的位置添加以下这段配置:
1
2
3
4
5

   
        
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">data-config.xml</str>
    </lst>
</requestHandler>

   





5、在E:solrcollection1confschema.xml 下找到下面的代码,并把
type="ext_general” 修改为type="text_zh"(分词方法):
1
2
<field name="title"  type="text_zh"   indexed="true" stored="true" multiValued="true"/>   
<field  name="content" type="text_zh"  indexed="false" stored="true" multiValued="true"/>

  





6、在E:solr目录下建立lib文件夹,将solr-4.7.2dist文件夹下的
wKioL1S_X57wcJxdAAFHx9pMm4I603.jpg

和自己准备的 mysql-connector-java-5.1.17.jar,放入E:solr目录下lib文件夹下
wKioL1S_X9HyOIr9AADXRuy2rqI003.jpg

7、导入数据到solr:打开http://localhost:8080/solr/#/collection1/dataimport//dataimport    里把Clean、Commit和Optimize打钩,再点击Execute Import(蓝色按钮)

wKioL1S_be6D3qk2AALsI4kxsVc351.jpg

8、打开查询页面,输入q输入框下输入
wKioL1S_bo7iktYhAALZ7iyzuDw873.jpg


注意事项:

Solr提供了full-import和delta-import两种导入方式,这篇文章主要讲解后者。
所谓delta-import主要是对于数据库(也可能是文件等等)中增加或者被修改的字段进行导入。主要原理是利用率每次我们进行import的时候在solr.homeconf下面生成的dataimport.properties文件,此文件里面有最近一次导入的相关信息。这个文件如下:
1.  #Wed Apr 21 16:48:27 CST 2010
2.  last_index_time=2010-04-21 16:48:24
3.  id.last_index_time=2010-04-21 16:48:24
其实last_index_time是最近一次索引(full-import或者delta-import)的时间。
通过比较这个时间和我们数据库表中的timestamp列即可得出哪些是之后修改或者添加的。
可通过http://:/solr/dataimport查看
下面是操作步骤:
  • 1.       配置好请求处理器。(这个见我的上一篇文章)
  • 2.       修改data-config.xml如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

   
<dataConfig>
   <dataSource type="JdbcDataSource"
      driver="com.mysql.jdbc.Driver"
      url="jdbc:mysql://localhost:3306/es_data"
      user="root"
      password="111111"/>
   <document>
       <entity name="id"
             query="SELECT id,`user`,title,content,`timestamp`,`text` FROM article"
             deltaImportQuery="SELECT id,`user`,title,content,`timestamp`,`text` FROM art        icle where id='${dataimporter.delta.id}'"
        deltaQuery="select id from article where `timestamp` > '${dataimporter.last_index_time}'">
     </entity>
   </document>
</dataConfig>

      
   





注意entity标签的参数:
  • deltaImportQuery

仅适用于delta-import的参数。DIH会检查数据库中的最后修改时间是否与我们
这个示例为了尽可能简单,没有使用多表。数据库对应表结构如下:
id    Integer       increment
user  varchar(45)
title varchar(45)
content varchar(2000)
timestamp datatime
text    varchar(2000)
  • 3.       最后我们请求:

http://:/solr/dataimport?command=delta-import 即可完成delta import
相关参数如下:
  • entity

entity是document下面的标签(data-config.xml)。使用这个参数可以有选择的执行一个或多个entity   。使用多个entity参数可以使得多个entity同时运行。如果不选择此参数那么所有的都会被运行。
  • clean

选择是否要在索引开始构建之前删除之前的索引,默认为true
  • commit

选择是否在索引完成之后提交。默认为true
  • optimize

是否在索引完成之后对索引进行优化。默认为true
  • debug

是否以调试模式运行,适用于交互式开发(interactive development mode)之中。
请注意,如果以调试模式运行,那么默认不会自动提交,请加参数“commit=true”


运维网声明 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-41258-1-1.html 上篇帖子: 第二步solr配置中文分词IK Analyzer 下篇帖子: 第四步 eclipse实现solr客户端 数据库 数据表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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