第三步solr实现MySQL 数据库数据表索引
2015-01-21 17:14
603 查看
1、修改索引地址:任意位置皆可,本文在E:\solr\下建了一个data文件夹,然后修改E:\solr\collection1\conf\solrconfig.xml 下的dir: 为创建的索引地址路径
2、建立数据库为es_data,在其下面建立一个名为news的数据表
3、在E:\solr\collection1\conf下新建一个data-config.xml文件,在里面添加以下代码:注(用户名、密码、数据库、数据表)
4、solr关联数据库:在E:\solr\collection1\conf\solrconfig.xml 下找到相应的位置添加以下这段配置:
5、在E:\solr\collection1\conf\schema.xml 下找到下面的代码,并把
type="ext_general” 修改为type="text_zh"(分词方法):
6、在E:\solr目录下建立lib文件夹,将solr-4.7.2\dist文件夹下的
和自己准备的 mysql-connector-java-5.1.17.jar,放入E:\solr目录下lib文件夹下
7、导入数据到solr:打开http://localhost:8080/solr/#/collection1/dataimport//dataimport 里把Clean、Commit和Optimize打钩,再点击Execute Import(蓝色按钮)
8、打开查询页面,输入q输入框下输入
注意事项:
Solr提供了full-import和delta-import两种导入方式,这篇文章主要讲解后者。所谓delta-import主要是对于数据库(也可能是文件等等)中增加或者被修改的字段进行导入。主要原理是利用率每次我们进行import的时候在solr.home\conf下面生成的dataimport.properties文件,此文件里面有最近一次导入的相关信息。这个文件如下:1. #Wed Apr 21 16:48:27 CST 20102. last_index_time=2010-04-21 16\:48\:243. id.last_index_time=2010-04-21 16\:48\:24其实last_index_time是最近一次索引(full-import或者delta-import)的时间。通过比较这个时间和我们数据库表中的timestamp列即可得出哪些是之后修改或者添加的。可通过http://<host>:<port>/solr/dataimport查看下面是操作步骤:1. 配置好请求处理器。(这个见我的上一篇文章)
2. 修改data-config.xml如下:
注意entity标签的参数:deltaImportQuery
仅适用于delta-import的参数。DIH会检查数据库中的最后修改时间是否与我们这个示例为了尽可能简单,没有使用多表。数据库对应表结构如下:id Integer incrementuser varchar(45)title varchar(45)content varchar(2000)timestamp datatimetext varchar(2000)3. 最后我们请求:
http://<host>:<port>/solr/dataimport?command=delta-import 即可完成delta import相关参数如下:entity
entity是document下面的标签(data-config.xml)。使用这个参数可以有选择的执行一个或多个entity 。使用多个entity参数可以使得多个entity同时运行。如果不选择此参数那么所有的都会被运行。clean
选择是否要在索引开始构建之前删除之前的索引,默认为truecommit
选择是否在索引完成之后提交。默认为trueoptimize
是否在索引完成之后对索引进行优化。默认为truedebug
是否以调试模式运行,适用于交互式开发(interactive development mode)之中。请注意,如果以调试模式运行,那么默认不会自动提交,请加参数“commit=true”
本文出自 “江山如画待赢归” 博客,谢绝转载!
<dataDir>${solr.data.dir:E:/solr/data}</dataDir>
2、建立数据库为es_data,在其下面建立一个名为news的数据表
3、在E:\solr\collection1\conf下新建一个data-config.xml文件,在里面添加以下代码:注(用户名、密码、数据库、数据表)
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <dataSource name="dstest" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/es_data?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true" user="root" password="111111" /> <document> <entity name="news" query="select id,title,content,update_time from news"> <field column="id" name="id" /> <field column="title" name="title" /> <field column="content" name="content" /> <field column="update_time" name="update_time" /> </entity> </document> </dataConfig>
4、solr关联数据库:在E:\solr\collection1\conf\solrconfig.xml 下找到相应的位置添加以下这段配置:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
5、在E:\solr\collection1\conf\schema.xml 下找到下面的代码,并把
type="ext_general” 修改为type="text_zh"(分词方法):
<field name="title" type="text_zh" indexed="true" stored="true" multiValued="true"/> <field name="content" type="text_zh" indexed="false" stored="true" multiValued="true"/>
6、在E:\solr目录下建立lib文件夹,将solr-4.7.2\dist文件夹下的
和自己准备的 mysql-connector-java-5.1.17.jar,放入E:\solr目录下lib文件夹下
7、导入数据到solr:打开http://localhost:8080/solr/#/collection1/dataimport//dataimport 里把Clean、Commit和Optimize打钩,再点击Execute Import(蓝色按钮)
8、打开查询页面,输入q输入框下输入
注意事项:
Solr提供了full-import和delta-import两种导入方式,这篇文章主要讲解后者。所谓delta-import主要是对于数据库(也可能是文件等等)中增加或者被修改的字段进行导入。主要原理是利用率每次我们进行import的时候在solr.home\conf下面生成的dataimport.properties文件,此文件里面有最近一次导入的相关信息。这个文件如下:1. #Wed Apr 21 16:48:27 CST 20102. last_index_time=2010-04-21 16\:48\:243. id.last_index_time=2010-04-21 16\:48\:24其实last_index_time是最近一次索引(full-import或者delta-import)的时间。通过比较这个时间和我们数据库表中的timestamp列即可得出哪些是之后修改或者添加的。可通过http://<host>:<port>/solr/dataimport查看下面是操作步骤:1. 配置好请求处理器。(这个见我的上一篇文章)
2. 修改data-config.xml如下:
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/es_data" user="root" password="111111"/> <document> <entity name="id" query="SELECT id,`user`,title,content,`timestamp`,`text` FROM article" deltaImportQuery="SELECT id,`user`,title,content,`timestamp`,`text` FROM art icle where id='${dataimporter.delta.id}'" deltaQuery="select id from article where `timestamp` > '${dataimporter.last_index_time}'"> </entity> </document> </dataConfig>
注意entity标签的参数:deltaImportQuery
仅适用于delta-import的参数。DIH会检查数据库中的最后修改时间是否与我们这个示例为了尽可能简单,没有使用多表。数据库对应表结构如下:id Integer incrementuser varchar(45)title varchar(45)content varchar(2000)timestamp datatimetext varchar(2000)3. 最后我们请求:
http://<host>:<port>/solr/dataimport?command=delta-import 即可完成delta import相关参数如下:entity
entity是document下面的标签(data-config.xml)。使用这个参数可以有选择的执行一个或多个entity 。使用多个entity参数可以使得多个entity同时运行。如果不选择此参数那么所有的都会被运行。clean
选择是否要在索引开始构建之前删除之前的索引,默认为truecommit
选择是否在索引完成之后提交。默认为trueoptimize
是否在索引完成之后对索引进行优化。默认为truedebug
是否以调试模式运行,适用于交互式开发(interactive development mode)之中。请注意,如果以调试模式运行,那么默认不会自动提交,请加参数“commit=true”
本文出自 “江山如画待赢归” 博客,谢绝转载!
相关文章推荐
- solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)
- 用solr DIH 实现mysql 数据定时,增量同步到solr
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- 实现Solr索引数据存放到HDFS下
- solr5.5之从数据库中导入数据并建立索引
- 在mysql中创建索引,提升获取数据库数据效率
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- 基于Solr DIH实现MySQL表数据全量索引和增量索引
- solr 从数据库导入数据,全量索引和增量索引
- 使用Solr索引MySQL数据
- 大数据之数据库mysql优化实战之索引的使用
- Solr 将数据库中table中数据导入到索引
- solr导入mysql数据建全量索引
- 大数据——ubuntu下Nutch 2.2+MySQL实现网站内容的抓取和索引(下集)
- 自学大数据:基于Solr实现HBase的文本索引
- (搜索引擎之solr) sorl运行环境的搭建及从mysql中导入数据创建索引
- solr学习第七课----solr之数据库数据导入生成索引(DataImportHandler)-基于solr搜索引擎
- mysql索引的实现数据结构(B-树)
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- 实现 oracle数据库转意数据到Mysql,最简单最直接