Solr DIH以Mysql为数据源批量创建索引

来源:互联网 发布:表格分析数据怎么取消 编辑:程序博客网 时间:2024/06/14 17:26

http://www.devnote.cn/article/86.html

测试于:Solr 4.5.1, mmseg4j 1.9.1, Jdk 1.6.0_45, Tomcat 6.0.37 | CentOS 5.7

配置数据源

[root@devnote ~]# cd /root/solr-4.5.1/example/example-DIH/solr/db/conf[root@devnote conf]# touch mysql-data-config.xml 

编辑mysql-data-config.xml,根据需要添加新内容,内容可参见同目录下db-data-config.xml文件

<dataConfig>    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/basic" user="root" password="123"/>    <document>        <entity name="article" transformer="HTMLStripTransformer"                query="SELECT id, title, content FROM article">                <field column="id" name="id" />                <field column="title" name="title" />                <field column="content" name="content" stripHTML="true" />        </entity>    </document></dataConfig>

transformer="HTMLStripTransformer"配合stripHTML="true"使用来达到过滤正文html标签的作用。

配置dataimport handler

打开solr管理后台,选择相应的core,选择Dataimport(可参考如下第二张截图)
初次使用此功能,会显示:sorry, no dataimport-handler defined!
编辑solrconfig

[root@devnote ~]# vi solr-4.5.1/example/solr/collection1/conf/solrconfig.xml

加入如下代码

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  <lst name="defaults">    <str name="config">/root/solr-4.5.1/example/example-DIH/solr/db/conf/mysql-data-config.xml</str>  </lst></requestHandler>

添加位置根据自己的习惯,便于查找即可,我这里放到系统内置最后一个handler,replication之下,如:
DIH的配置位置

重启报错:java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler
引入需要的包即可

[root@devnote ~]# cp solr-4.5.1/dist/solr-dataimporthandler-*.jar /opt/tomcat/webapps/solr/WEB-INF/lib/

因为涉及到连接mysql,自己找一个mysql的驱动包也放到上述lib中

重启

执行创建索引

  1. 选择对应的core;
  2. 选择Dataimport;
  3. 选择实体article;(注Solr 4.9.0中实体列表为空,解决方法参见:For security reasons, SolrResourceLoader cannot load files from outside the instance's directory)
  4. 执行Execute;
  5. Refresh Status查看状态,右侧会显示正确索引的数量。

使用DIH从mysql批量生成索引


0 0
原创粉丝点击