solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

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

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

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

solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

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

solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

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

solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

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域的类型。

solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

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

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

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

solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

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服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

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

上一篇:Solr学习总结(八)IK 中文分词的配置和使用


下一篇:Linux下不同服务器间数据传输--转载