利用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文件,还可以是来自网络上的等等。
你还不知道什么是数据库的索引吗 在MySQL的官方文档里对于索引的定义是:索引(Index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
数据库、数据表的基本操作及查询数据 数据库、数据表的基本操作及查询数据数据库的基本操作创建数据库 CREATE DATABASE database_namedatabase_name为要创建的数据库的名称删除数据库 DROP DATABASE database_namedatabase_name为要删除的数据库的名称数据库存储引擎数据库存储引擎是数据库底层软件组成,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。
通过java.sql.DatabaseMetaData 接口,我们能获取到数据库的列表、列等信息。 DatabaseMetaData 接口包含了许多方法,这里值介绍常用的。
相关文章
- 数据库事务,游标,触发器,存储过程,索引,数字,日期转换为字符,字符串操作,查询,分类,内连接,外连接,全连接,模糊查询,范围查询,5种聚合函数,分组查询,主键,外键,标识列
- 数据库优化 和建立索引 建议
- c#程序中使用"like“查询access数据库查询为空的问题
- MySQL数据库索引失效的10种场景
- koa 基础(二十五)数据库 与 art-template 模板 联动 --- 新增数据
- Oracle数据库:oracle数据表格dmp,sql,pde格式导入与导出,视图、序列、索引等对象的导出,oracle完结,后续开启mysql的学习
- Oracle数据库:oracle执行计划性能代价cost,全表扫描速度慢,索引扫描速度快
- 数据库系列课程(23)-MongoDB 索引
- 关于数据库的索引知识
- 时序数据库-存储初识1
- PostgreSQL修改数据库名(转载)
- SQLSERVER:计算数据库中各个表的数据量和每行记录所占用空间
- 从零基础入门MySQL数据库基础课
- 阿里数据库内核月报:2016年10月
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.16 创建索引
- python 数据库风格的DataFrame合并
- SQL Server调优系列进阶篇(如何维护数据库索引)
- 在应用层通过spring特性解决数据库读写分离
- SQL2005 数据库——查看索引
- MapD GPU数据库开源了
- 数据库索引优化
- MyBatis魔法堂:各数据库的批量Update操作
- lucene索引并搜索mysql数据库[转]
- [Oracle]数据库的Control File 取Dump后的样例
- 对PostgreSQL数据库的hstore类型建立GisT索引的实验