利用SOLR从数据库创建索引

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/mysql ... command=full-import ,既可以看到输出。通过上面访问,就创建了数据库索引 
可以访问 http://127.0.0.1:8080/solr/mysqltest/admin/ ,在Query String: 输入id:搜索内容(格式为  要搜索的字段:搜索关键字)来测试是否已经将数据表中的数据建立了索引,也可以在该界面修改搜索的参数 

最后在说说这个功能。上面的例子只不过是很简单的一个部分。针对solr的MultiCore,通过配置db-data-config.xml也可以实现,还有多表,或者多表关联等等操作只要在db-data-config.xml配置清楚都可以进行数据的导入。 
在solr1.4中还有更多的扩展功能,这些功能为重建索引提供能很方便的操作。而且,datasource不单单指的是database,可以是xml文件,还可以是来自网络上的等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值