美文网首页
solr8.3.1配置+IK分词器配置+数据库配置

solr8.3.1配置+IK分词器配置+数据库配置

作者: BlackR_ | 来源:发表于2020-03-01 20:44 被阅读0次

    参考文献

    Solr分词搜索solrj简单查询

    solr-8.3.1版本连接MySQL、配置IK分词器

    Solr配置完分词器后Analysis分词有效果,查询时分词无效果的解决

    集成环境

    • windows10
    • jdk8
    • solr8.3.1
    • ik-analyzer-8.3.0

    工具资源下载

    启动solr

     .\solr start
    

    停止solr

     .\solr stop -all
    

    重启solr

    .\solr restart -port 8983
    

    集成IK分词器

    • 将下好的IK分词器jar 复制到\solr-8.3.1\server\solr-webapp\webapp\WEB-INF\lib下

    • 配置managed-schema 打开solr-8.3.1\server\solr\需要配置的core名字\conf

      <!-- ik分词器 -->
      <fieldType name="text_ik" class="solr.TextField">
          <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" luceneMatchVersion="8.3.1"/>
          <analyzer type="index">
              <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
              <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
          <analyzer type="query">
              <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
              <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
      </fieldType>
      

    配置数据库

    • 打开 solr-8.3.1\dist 文件夹,将里面的solr-dataimporthandler-x.x.x.jarsolr-dataimporthandler-extras-x.x.x.jar 以及数据库连接驱动 mysql-connector-java.jar 复制到 solr-8.3.1\server\solr-webapp\webapp\WEB-INF\lib 里面

    • solr-8.3.1\server\solr 里面新建文件夹(文件夹的名字就是后面core的名字)

    • 拷贝 solr-8.3.1\server\solr\configsets\_default 文件夹下中的conf文件夹到上面新建的文件夹中(solr-8.3.1\server\solr\configsets\sample_techproducts_configs中其他文件夹中的conf文件夹也可以)

    • 打开 solr-8.3.1\server\solr\新建的文件夹\conf\solrconfig.xml

      • 找到下面的配置

        <requestHandler name="/select" class="solr.SearchHandler">
        
      • 在它上面加上以下配置

        <requestHandler name="/dataimport"
            class="org.apache.solr.handler.dataimport.DataImportHandler"> 
                <lst name="defaults"> 
                    <!-- 这里是数据库配置文件的路径 -->
                    <str name="config">data-config.xml</str> 
                </lst>  
        </requestHandler>
        
    • solr-8.3.1\server\solr\新建的文件夹\conf中新建文件 data-config.xml,和上面添加配置中的名字统一

      <?xml version="1.0" encoding="UTF-8" ?>
      <dataConfig>
        <dataSource 
                    type="JdbcDataSource" 
                    driver="com.mysql.cj.jdbc.Driver"               
                    url="jdbc:mysql://127.0.0.1:3306/gov_policy?characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=GMT%2B8&amp;allowMultiQueries=true&amp;allowPublicKeyRetrieval=true" 
                    user="root" 
                    password="root" />
        <document>
          <entity name="repo_policy" query="select * from repo_policy" deltaQuery="select * from repo_policy">
            <!-- column:数据库表字段名;  name:name对应之后managed-schema文件配置的name -->
            <field column="r_title" name="r_title" />
            <field column="id" name="id" />
            <entity name="repo_policy_content" query="select content from repo_policy_content where policy_id = '${repo_policy.id}'" deltaQuery="select * from repo_policy_content">
              <field column="content" name="r_content"/>
            </entity>
          </entity>
        </document>
      </dataConfig>
      
      • query是获取全部数据的SQL
      • deltaImportQuery是获取增量数据时使用的SQL
      • deltaQuery是获取pk的SQL
      • parentDeltaQuery是获取父Entity的pk的SQL
    • 打开 solr-8.3.1\server\solr\新建的文件夹\conf\managed-schema 并配置与上面data-config.xml相应的域

      <field name="r_title" type="text_ik" uninvertible="true" indexed="true" stored="true"/>
      <field name="r_content" type="text_ik" uninvertible="true" indexed="true" stored="true"/>
      

    测试IK和数据库集成

    • 启动solr,进入后台 http://127.0.0.1:8983/solr

    • 点击Core Admin,新建solr核心 corenameinstanceDir的名称与我们新建的文件夹名称相同,然后点击Add Core进创建成功了!

    • 左侧的Core Selector中找到我们新建的文件夹名称打开

    • 测试数据库配置

      • 点击Dataimport,其中在Entity中就可以找到我们在配置文件中添加的数据库名称了,选择数据库,点击Execute
        • 如果找不到,就说明data-config.xml的配置有误
      • 点击左侧Query,什么都不选,直接点击ExecuteQuery就可以看到数据库中的数据了
    • 测试IK分词器

      • 点击Analysis,在Field Value (Index)输入需要分词的语句

      • **Analyse Fieldname / FieldType **下拉框中选择上面配置的域 r_title

      • 点击右边的Analyse Values就可以看到结果了

    错误总结

    相关文章

      网友评论

          本文标题:solr8.3.1配置+IK分词器配置+数据库配置

          本文链接:https://www.haomeiwen.com/subject/sxgkkhtx.html