上都海奶茶馆 发表于 2017-12-19 18:06:11

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">
  
<analyzer/>
  
</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">  
<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架构案例,有需要的朋友可以继续关注!!!]
页: [1]
查看完整版本: solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件