zoukankan      html  css  js  c++  java
  • solr + tomcat + mysql整合

    上一次分享了solr+tomcat的整合

    学习就是要一步一步的进行才有趣

    所以这次给大家分享solr+tomcat+mysql

    一、准备工作

    1.一张带数据的数据库表(我用的是这张叫merchant的表)

    2.导jar包

    需要把solr-5.5.4dist目录下的solr-dataimporthandler-5.5.4.jar复制到tomcatwebappssolrWEB-INFlib

    目录下如图

    还需要导一个数据库连接的jar包到tomcatwebappssolrWEB-INFlib

    3.core配置(core具体创建不描述了虽然会的不多但是还是懒=。=)

    默认dataImport功能在Solr5中是禁用的,需要在solrconfig.xml中添加如下配置开启数据导入功能:

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

     这个地址可以是绝对路径。

    将core中的solr-data-config.xml修改成data-config.xml

    需要在里面敲的代码如下

    <dataConfig>
    <dataSource name="bfy" type="JdbcDataSource"  
    
                    driver="com.mysql.jdbc.Driver"  
    
                    url="jdbc:mysql://39.108.147.253:3306/bfy"  
    
                    user="root"  
    
                    password="199610liu"/>
                        
      <document>
       <entity pk="MID" dataSource="bfy" name="merchant" 
       query="select * from merchant"
       deltaImportQuery="select * from merchant where id ='${dih.delta.id}'"  
       deltaQuery="select id from merchant where timestamp > '${dih.last_index_time}'">
        <field column="MID" name="id"/>
        <field column="mName" name="mName"/>
        <field column="northernLatitude" name="northernLatitude"/>
        <field column="eastLongitude" name="eastLongitude"/>
    </entity>    
      </document>
    </dataConfig>

     这里解释下以上代码

    dataSource里边就是我们经常配置的数据源

    entity中要注意的就是查询后面的表名要修改

    field是你表中的数据可以只选需要的

    紧接着我们需要打开schema.xml配置文件对域名称、域类型、是否索引、是否存储、是否分词等信息进行配置,

    如图:

       <field name="mName" type="text_ik" indexed="true" stored="true" omitNorms="true"/>
       <field name="MID" type="int" indexed="true" stored="true"/>    
       <field name="northernLatitude" type="string" indexed="true" stored="true"/>    
       <field name="eastLongitude" type="string" indexed="true" stored="true"/>    

    可以看见代码中有一个 text_ik 这个值一个分词器

    这时我们需要引入ik分词器

    这里需要引如下2个jar包到tomcatwebappssolrWEB-INFlib下

    <fieldType name="text_ik" class="solr.TextField">   
                       <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
                       <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
             </fieldType>

     这样连接数据库的配置都配好了

    再去启动tomcat进入http://localhost:8000/solr/admin.html#/ 进入如下位置可以见到效果

    页面上的内容介绍

    full-import:全量导入,它会覆盖原有的索引

    delta-import:即增量导入,它会在原有索引的基础上追加

    下面的几个多选框含义解释如下:

    verbose:这个选项设为true的话,会打印导入的一些中间过程的详细信息,有利于调试以及了解内部操作细节

    clean:表示是否在导入数据创建索引之前先清空掉原有的索引

    commit:表示是否立即提交索引

    optimize:表示是否优化索引

    debug: 表示是否开启调试模式

    选中merchant后点蓝色的那个按钮

    上面的页面是正在创建索引,但是这个页面不会停太久如果很久没有反应就去tomcat那边看是否有报错日志

    成功的话会有如下界面

     切换到overview菜单,我们会看到:

    Num Docs会有数据

    切换到Query菜单,对我们刚插入的索引进行查询测试,如图:

    numFound是找到的数据条数

    附上我使用的ik分词器下载链接 https://pan.baidu.com/s/1amtFlufyTEzMLcSnbOr7vA

    这里整合就结束了

    如果有不足和错误的地方还请各位大佬指点

    谢谢!!!

    2018-09-20 17:35:52

  • 相关阅读:
    51nod 1463 找朋友 (扫描线+线段树)
    51nod 1295 XOR key (可持久化Trie树)
    51nod 1494 选举拉票 (线段树+扫描线)
    51Nod 1199 Money out of Thin Air (树链剖分+线段树)
    51Nod 1287 加农炮 (线段树)
    51Nod 1175 区间中第K大的数 (可持久化线段树+离散)
    Codeforces Round #426 (Div. 1) B The Bakery (线段树+dp)
    前端基础了解
    git 教程
    HIVE 默认分隔符 以及linux系统中特殊字符的输入和查看方式
  • 原文地址:https://www.cnblogs.com/-ccj/p/9682229.html
Copyright © 2011-2022 走看看