您的位置:首页 > 其它

solr学习笔记 -- day04 导入数据、自定义类型

2017-06-04 18:03 489 查看

一:创建索引库

注意:在solr中,每个文档必须由id域,每个域必须先定义,后使用

1、schema.xml的配置:

       (1) field:域的定义



                name:域的名称

                type:域的类型,类型在schema.xml中定义。是否分词在类型中定义

                indexed:是否索引

                stored:是否存储

                multiValued:是否多值,value部分存储的是数组。

       (2) dynamicField:动态域



                name:域的名称,是一个表达式,表示如果域的名称和表达式能够匹配成功,那么这个域的名称就可以使用

       (3) uniqueKey:主键的定义
       (4) copyField
4000
:复制域

                source:源域

                dest:目标域

                该域是一中查询优化的手段

       (5) fieldType:域的类型定义



                name:域的名称

                class:类型的实现类

                注意:只有solr.TextField类型允许自定义分词器,意思就是如果我们想要定义自己的分词器,就需要用TestField来定义类型

二:使用中文分词器的FieldType定义

1、实现步骤

(1)、把IK分词器的jar包添加到solr工程中
(2)、需要把IK的配置文件、停止词典、扩展词典加到solr的classpath下



(3)、在schema.xml中定义FieldType



<!-- 自定义的IK分词器的fieldType类型
class的值必须是solr.TextField
-->
<fieldType name="text_ik" class="solr.TextField" >
<!-- class属性的值为ik分词器的全类路径 -->
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer">
</analyzer>
</fieldType>


(4)、定义自己的Field域,使用的是text_ik这个fieldType



<!-- 定义自己的field域 -->
<!--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"/>


(5)、保存文件,重启tomcat,查看solr中域的变化



三:导入数据库中的数据

百度网盘连接:http://pan.baidu.com/s/1skCddiX   密码:qgl2

将数据库中的数据导入到索引库,可以配置DataImport功能实现数据库导入

配置步骤:

1、把DataImport依赖的jar包导入solrcore中





2、在solrconfig.xml中配置requestHandler



<!-- 添加将数据库中数据导入索引库的requestHandler -->
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>


3、在solrconfig.xml统计目录下创建data-cofnig.xml文件,配置数据库连接、sql语句以及结果集和solr中业务域的映射关系



<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/lucene"
user="root"
password="root"/>
<document>
<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>


4、重启tomcat,进入solr的Dataimport界面,点击Execute

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: