zoukankan      html  css  js  c++  java
  • solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

    昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务;今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索。

     在solr服务中集成IKAnalyzer中文分词器的步骤:

    1、下载IKAnalyzer分词器的压缩包并解压;

    2、将IKAnalyzer压缩包中的jar包复制到Tomcat容器中已经部署的solr项目中的WEB-INF/lib目录下;

    3、在Tomcat容器的solr项目中的WEB-INF/目录创建一个classes目录(默认该目录是不存在的,需手动创建),并将分词器压缩包中的配置文件、自定义词典、通用词典三个文件拷贝到classes目录中;

    4、找到solr的家目录,即solrHome目录,修改solrHome/collection1/conf/schema.xml文件中定义IK域的类型、定义自定义域配置内容;

      <!-- IKAnalyzer-->
        <fieldType name="text_ik" class="solr.TextField">
        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
        </fieldType>
    
        <!--IKAnalyzer Field-->
        <field name="content_ik" type="text_ik" indexed="true" stored="true" />

    5、重新启动Tomcat容器,检验是否配置成功,如果出现以下界面中的内容,则集成成功,可以看到我们刚才在solrHome的配置文件中配置的自定义域和IK域的类型。

    使用dataimportHandler插件批量导入数据,在solr服务中集成dataimportHandler插件的步骤:

    1、找到solrHome/collection1目录,创建一个lib目录,将插件所依赖的jar包和数据库驱动包拷贝到lib目录下(dataimportHandler插件依赖的jar包可以在下载好的solr压缩包中找到);

    插件依赖的jar包在dist目录下:

    2、找到solrHome/collection1/conf/solrconfig.xml文件,添加如下配置内容:

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

    3、根据创建的数据表在solrHome/collection1/conf/schema.xml配置文件中配置业务域(温馨提示:业务域根据数据表的字段名称来配置);

       <!--product-->
        <field name="product_name" type="text_ik" indexed="true" stored="true"/>
        <field name="product_price"  type="float" indexed="true" stored="true"/>
        <field name="product_description" type="text_ik" indexed="true" stored="false" />
        <field name="product_picture" type="string" indexed="false" stored="true" />
        <field name="product_catalog_name" type="string" indexed="true" stored="true" />
    
        <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
        <copyField source="product_name" dest="product_keywords"/>
        <copyField source="product_description" dest="product_keywords"/>

    4、需要创建一个文件名称为data-config.xml的配置文件,并且拷贝到solrHome/collection1/conf目录下;data-config.xml文件中的配置内容如下(温馨提示:根据自己的需求的来添加配置内容,如数据库连接的参数信息,数据库中表字段的名称等):

    <?xml version="1.0" encoding="UTF-8" ?>
    <dataConfig>
    <dataSource type="JdbcDataSource"   
              driver="com.mysql.jdbc.Driver"   
              url="jdbc:mysql://localhost:3306/solr"   
              user="root"   
              password="123"/>

    <document>
      <!-- column代表数据表中的字段名称,name代表配置文件中的业务域的name属性值名称 --> <entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products "> <field column="pid" name="id"/> <field column="name" name="product_name"/> <field column="catalog_name" name="product_catalog_name"/> <field column="price" name="product_price"/> <field column="description" name="product_description"/> <field column="picture" name="product_picture"/> </entity> </document> </dataConfig>

     5、重启Tomcat容器,检验插件是否集成成功,如果集成成功,则会看到如下界面,看到成功界面后,就可以导入指定数据表中的数据,导入操作在下图中已表明:

     [后续会更新京东站内搜索-solr架构案例,有需要的朋友可以继续关注!!!]

  • 相关阅读:
    tcp/ip网络分层 紫翼龙王
    软件防火墙之iptables/netfilter概念篇(一) 紫翼龙王
    linux cpu负载详解 紫翼龙王
    ThinkInJava4读书笔记之第五章隐藏实施过程
    ThinkInJava4读书笔记之第六章类继承
    工具类sql操作工具类
    python 面向对象
    python 初识
    python 函数,内置函数
    python 正则,os,sys,hashlib模块
  • 原文地址:https://www.cnblogs.com/1315925303zxz/p/6250238.html
Copyright © 2011-2022 走看看