日期:2014-05-16  浏览次数:20638 次

利用SOLR从数据库创建索引
转自原路径《http://liuquanjc.iteye.com/blog/870634》--因里面有的路径与下载的文件结构不同,故修改后保存到博客已便以后使用
---这里这连接MYSQL的

solr功能非常强大,可以建立各种数据的索引,常见的企业应用中,少不了数据库的索引的创建,可以通过写程序 可以将数据读出100条,如果你的内存够大,可以是1000条甚至更多,然后放入Collection中,批量提交至solr。或者读取数据写入xml文件中,再将该文件提交到solr等等。但是,solr也只带了数据库创建索引的功能,步骤如下:

一、通过solr自带的example
准备工作:
1、在apache官网下载 apache-solr-1.3.0.zip
2、下载mysql、hsql驱动(下面例子会用到)

环境描述:
1、tomcat版本 6.0.29  位置:D:\tomcat6.0.29   设置环境变量:CATALINA_HOME=D:\tomcat6.0.29
2、jdk1.5

步骤:
1、解压缩apache-solr-1.3.0.zip copy apache-solr-1.3.0\example\solr  文件夹到D:\tomcat6.0.29,目录结构为D:\tomcat6.0.29\solr
2、copy apache-solr-1.3.0\dist\apache-solr-1.3.0.war到D:\tomcat6.0.29\webapps\,兵将apache-solr-1.3.0.war改为solr.war,tomcat会自动解压缩该文件,生成solr文件夹,copy上面下载的mysql、hsql驱动包到D:\tomcat6.0.29\webapps\solr\WEB-INF\lib下
3、copy apache-solr-1.3.0\example\solr里面内容到 D:\tomcat6.0.29\solr里面--(原文第三步到这里就结束了- 但因第四步无法继续 所以我把下载到的apache-solr-1.3.0\example\example-DIH\solr里的内容复制到D:\tomcat6.0.29\solr下)

4、删除D:\tomcat6.0.29\solr\rss,修改D:\tomcat6.0.29\sorl\solr.xml  文件,去掉<core default="true" instanceDir="rrs" name="rrs"></core>该行
5、copy apache-solr-1.3.0\example\example-DIH内的hsqldb.zip 目录到D:\tomcat6.0.29,解压缩hsqldb.zip到当前文件夹,改文件为hsql数据库文件
6、到此,完成,

运行测试:
开始-运行  cmd  进入命令行,切换目录到D:\tomcat6.0.29,输入bin\startup.bat,启动tomcat6,如果上面配置无误,可以查看tomcat日志看是否有错误,确定无错后,在浏览器输入http://127.0.0.1:8080/solr/db/dataimport?command=full-import,既可以看到输出


二、测试mysql数据库
环境和创建的文件夹延续上面的
步骤:
1、在D:\tomcat6.0.29\solr下创建mysqltest文件夹,copy D:\tomcat6.0.29\solr\db 里面的内容到D:\tomcat6.0.29\solr\mysqltest
2、修改D:\tomcat6.0.29\solr\solr.xml文件内容为
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<solr sharedLib="lib" persistent="true">
    <cores adminPath="/admin/cores">
        <core default="true" instanceDir="mysqltest" name="mysqltest"></core>
    </cores>
</solr>
3、修改D:\tomcat6.0.29\solr\mysqltest\conf\db-data-config.xml 内容为:
<dataConfig>
     <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test" user="root" password=""/> 
     <document name="mybook"> 
             <entity name="book" pk="id" query="select * from book"> 
             <field column="id" name="id" /> 
             <field column="bookname" name="bookname" /> 
             <field column="bookathor" name="bookathor" />
         </entity> 
     </document>
</dataConfig>
4、因为bookname、bookathor2个字段在D:\tomcat6.0.29\solr\mysqltest\conf\schema.xml不存在,所以,要增加着2个field
<field name="bookname" type="string" indexed="true" stored="true" required="true" />
   <field name="bookathor" type="string" indexed="true" stored="true" required="true" />
注意:在该文件有<field  的地方增加,

5、将D:\tomcat6.0.29\solr\mysqltest\conf\solrconfig.xml
中<dataDir>${solr.data.dir:./solr/db/data}</dataDir>
改为<dataDir>${solr.data.dir:./solr/mysqltest/data}</dataDir>

6、到此完成
运行测试:
开始-运行  cmd  进入命令行,切换目录到D:\tomcat6.0.29,输入bin\startup.bat,启动tomcat6,如果上面配置无误,可以查看tomcat日志看是否有错误,确定无错后,在浏览器输入http://127.0.0.1:8080/solr/mysqltest/dataimport?command=full-import,既可以看到输出。通过上面访问,就创建了数据库索引
可以访问http://127.0.0.1:8080/solr/mysql