Solr搜索引擎(3)索引mysql数据
来源:互联网 发布:淘宝联盟佣金怎么算的 编辑:程序博客网 时间:2024/06/11 10:15
1、修改配置
将数据库驱动jar和solr/dist路径下的solr-dataimporthandler-x.x.x.jar复制到solr-x.x.x/server/solr-webapp/webapp/WEB-INF/lib下
在solr/server/solr/核心/conf路径下添加文件data-config.xml,并添加以下内容(示范如下)
<dataConfig> <!-- url如果包含特殊字符如";",必须使用html转移字符 --> <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.100.25:6660/tbcms" user="root" password="123456"/> <document> <!-- query为全量更新SQL --> <entity name="T_TBPackage" pk="TBPackageID" query="select * from T_TBPackage" <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) --> <field column="TBPackageID" name="id"/> <field column="TBPackageName" name="TBPackageName"/> <field column="PackageTypeID" name="PackageTypeID"/> <field column="PINCount" name="PINCount"/> <field column="PINCenterDistance" name="PINCenterDistance"/> <field column="ElementBodyWidth" name="ElementBodyWidth"/> <field column="ElementPlasticBodyLength" name="ElementPlasticBodyLength"/> <field column="Height" name="Height"/> <field column="ExposedPad" name="ExposedPad"/> </entity> </document></dataConfig>
修改solrconfig.xml,添加以下内容
<requestHandler name="/dataimport" class="solr.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
修改managed-schema,添加mysql中需要存入solr的字段(示范如下)
<field name="TBPackageName" type="string" indexed="true" stored="true"/><field name="PackageTypeID" type="string" indexed="true" stored="true"/><field name="PINCount" type="string" indexed="true" stored="true"/><field name="PINCenterDistance" type="string" indexed="true" stored="true"/><field name="ElementBodyWidth" type="string" indexed="true" stored="true"/><field name="ElementPlasticBodyLength" type="string" indexed="true" stored="true"/><field name="Height" type="string" indexed="true" stored="true"/>
重启solr
2、全量索引
2.1、执行全量更新
2.2、更新成功
3、增量索引
3.1、solr默认使用UTC时间,即与中国时差8小时,所以需要修改配置文件bin/solr.in.sh
SOLR_TIMEZONE="UTC+8"
3.2、修改mysql数据库的表结构,添加一个时间戳字段,当某行数据发生更新时该字段自动更新为修改数据的时间,为solr增量添加提供服务(范例如下)
last_modified timestamp not null on update current_timestamp default current_timestamp
3.3、修改solr/server/solr/核心/conf路径下添加文件data-config.xml,并添加增量SQL(示范如下)
<dataConfig> <!-- url如果包含特殊字符如";",必须使用html转移字符 --> <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.100.25:6660/tbcms" user="root" password="123456"/> <document> <!-- deltaQuery检索出增量更新需要更新的字段 --> <entity name="T_TBPackage" pk="TBPackageID" query="select * from T_TBPackage" deltaQuery="select TBPackageID from T_TBPackage where last_modified > '${dih.last_index_time}'"> <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) --> <field column="TBPackageID" name="id"/> <field column="TBPackageName" name="TBPackageName"/> <field column="PackageTypeID" name="PackageTypeID"/> <field column="PINCount" name="PINCount"/> <field column="PINCenterDistance" name="PINCenterDistance"/> <field column="ElementBodyWidth" name="ElementBodyWidth"/> <field column="ElementPlasticBodyLength" name="ElementPlasticBodyLength"/> <field column="Height" name="Height"/> <field column="ExposedPad" name="ExposedPad"/> </entity> </document></dataConfig>
3.4、重启solr
3.5、增量更新,此处clean选项必须取消勾选。否则当增量更新成功后,会把没有增量更新的数据删除!!!
3.6、更新成功
注: 存放上一次更新时间的配置文件为solr/server/solr/核心/conf/dataimport.properties
阅读全文
0 0
- Solr搜索引擎(3)索引mysql数据
- 使用Solr索引MySQL数据
- 使用Solr索引MySQL数据
- 使用Solr索引MySQL数据
- 使用Solr索引MySQL数据
- 使用 Solr 索引 MySQL 数据
- 使用Solr索引MySQL数据
- (搜索引擎之solr) sorl运行环境的搭建及从mysql中导入数据创建索引
- Solr搜索引擎(5)通过Java代码索引MySQL
- 【转】企业级搜索引擎Solr 第三章 索引数据
- 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)
- solr学习第七课----solr之数据库数据导入生成索引(DataImportHandler)-基于solr搜索引擎
- solr导入mysql数据建全量索引
- Solr导入mysql数据建全量索引
- 使用Solr索引查询Mysql数据
- solr直接索引mysql数据库中的数据(solr实战二)
- solr学习第三课----solr索引维护-基于solr搜索引擎
- 数据索引---Solr DIH
- Memcached
- web安全
- Spark SQL基础笔记及简单案例
- spring batch admin的安装配置基础
- <10/1>集训周记
- Solr搜索引擎(3)索引mysql数据
- 线程池TreadPoolExecutor
- linux内存管理之页表
- 2017开学训练第五周周末总结
- thymeleaf使用详解
- to_date() 与 to_char() 日期和字符串转换
- 使用Keepalived实现双机热备
- 解决Tensorflow使用CPU报错
- java实现网站访问量统计