Solr4.7从Mysql数据库导数据

分类:技术文档 - solr | 阅读(3002) | 发布于:2015-05-22 16:52

1.复制文件
#下载 mysql-connector-java-5.1.26-bin.jar
wget http://www.lixiaocheng.com/editor/attached/file/20160623/mysql-connector-java-5.1.26-bin.jar
cp mysql-connector-java-5.1.26-bin.jar /opt/tomcat/webapps/solr/WEB-INF/lib/
cp /opt/solr/dist/solr-dataimporthandler-* /opt/tomcat/webapps/solr/WEB-INF/lib/
2.修改solrconfig.xml
<requesthandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">data-config.xml</str>
    </lst>
</requesthandler>
</config>
3.创建 data-config.xml 文件:
(多数据源 : 一个配置文件可以配置多个数据源。增加一个dataSource元素就可以增加一个数据源了。name属性可以区分不同的数据源。如果配置了多于一个的数据源,那么要注意将name配置成唯一的。)
vi /opt/solr/example/solr/collection1/conf/data-config.xml
#添加以下代码:
<!--?xml version="1.0" encoding="utf-8"?-->  
<dataconfig>
    <datasource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://**.**.**.**:3306/ggt" user="**" password="**">
        <document name="ggtdata">
            <entity 
                name="bbs_thread" pk="id" 
                query="SELECT `Id`,`Title`,`Type`,`Content`,`AddTime`,`UpdateTime` FROM learn_doc" 
                deltaquery="SELECT `Id`,`Title`,`Type`,`Content`,`AddTime`,`UpdateTime` FROM learn_doc where AddTime > '${dataimporter.last_index_time}' OR UpdateTime > '${dataimporter.last_index_time}'"
                >  
                <field column="Id" name="Id"></field>
                <field column="Title" name="Title"></field>
                <field column="Type" name="Type"></field>
                <field column="Content" name="Content"></field>
                <field column="AddTime" name="AddTime"></field>
                <field column="UpdateTime" name="UpdateTime"></field>
            </entity>
            <!--
            <entity name="talent_name" query="select value from talentname where talentId='${talent.id}'">  
                <field column="value" name="name"/>  
            </entity>
            -->
        </document> 
    </datasource>
</dataconfig>

4.修改schema.xml,修改数据类型定义:

<!--?xml version="1.0" encoding="UTF-8" ?-->
<schema name="collection1" version="1.1">
 
    <fields>
		<field name="Id" type="string" indexed="true" stored="true" required="true" multivalued="false"></field>
		<field name="Title" type="text_ik" indexed="true" stored="true" multivalued="false"></field>
		<field name="Type" type="int" indexed="true" stored="true" multivalued="false"></field>
		<field name="Content" type="text_ik" indexed="true" stored="true" multivalued="false"></field>
		<field name="AddTime" type="date" indexed="true" stored="true" multivalued="false"></field>
		<field name="UpdateTime" type="date" indexed="true" stored="true" multivalued="false"></field>
		<field name="_version_" type="long" indexed="true" stored="true"></field>
	</fields>
 
    <uniquekey>Id</uniquekey>
 
    <!-- field for the QueryParser to use when an explicit fieldname is absent -->
    <defaultsearchfield>Title</defaultsearchfield>
 
    <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
    <solrqueryparser defaultoperator="OR">
		  
		<!-- 
		<copyField source="name" dest="text"/>
		<copyField source="author" dest="author_s"/>
		-->
	 
		<types>
			<fieldtype name="string" class="solr.StrField" sortmissinglast="true"></fieldtype>
			<fieldtype name="int" class="solr.TrieIntField" precisionstep="0" positionincrementgap="0"></fieldtype>
			<fieldtype name="long" class="solr.TrieLongField" precisionstep="0" positionincrementgap="0"></fieldtype>
			<fieldtype name="date" class="solr.TrieDateField" precisionstep="0" positionincrementgap="0"></fieldtype>
			<fieldtype name="text_ik" class="solr.TextField">
				<analyzer type="index" ismaxwordlength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"></analyzer>
				<analyzer type="query" ismaxwordlength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"></analyzer>
			</fieldtype>
		</types>
	 
	</solrqueryparser>
</schema>

5.重启tomcat。

/usr/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh
6.在管理员界面上执行操作:

标签:solrmysql