Solr6.5与mysql集成建立索引

首先在solrconfig.xml(我的是保存在/usr/local/tomcat/solrhome/mycore/conf/下)的<requestHandler name="/select" class="solr.SearchHandler">之上添加

(我的本地的solrconfig.xml中有这个/dtatimport 只需把class修改为下面的就可以了)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
      <lst name="defaults">
         <str name="config">data-config.xml</str>
      </lst>
</requestHandler> 

然后在conf的solr-data-config.xml文件。里面内容如下:
<dataConfig>
    <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/user(数据库名)" user="root" password="root" batchSize="-1" />
		<document>
        <entity name="news" pk="id"  dataSource="source1"
                query="select * from  news"
                deltaImportQuery="select * from news where id=‘${dih.delta.id}‘"
                deltaQuery="select id from news where updateTime> ‘${dataimporter.last_index_time}‘">  

				<field column="id" name="id"/>
				<field column="title" name="title"/>
				<field column="synopsis" name="synopsis"/>
				<field column="updateTime" name="updateTime"/>
		</entity>
		</document>
</dataConfig> 

dataSource是数据库数据源。Entity就是一张表对应的实体,pk是主键,query是查询语句。Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed的名字。其中user是数据库名,news是表名。
其中deltaQuery是增量索引,原理是从数据库中根据deltaQuery指定的SQL语句查询出所有需要增量导入的数据的ID号。然后根据deltaImportQuery指定的SQL语句返回所有这些ID的数据,即为这次增量导入所要处理的数据。核心思想是:通过内置变量“${dih.delta.id}”和 “${dataimporter.last_index_time}”来记录本次要索引的id和最近一次索引的时间。

然后把mysql所需的jar包(去下载相应的jar包)和solr-6.2.0\dist下的solr-dataimporthandler-6.2.0.jar和solr-dataimporthandler-extras-6.2.0.jar都复制到项目WEB-INF\lib下(该步骤在安装solr的时候已做)

启动Tomcat,输入http://localhost:8080/solr/index.html按如下选择,

				
时间: 2024-12-08 01:57:28

Solr6.5与mysql集成建立索引的相关文章

为mysql数据库建立索引

前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头. 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, cate

[转]为mysql数据库建立索引

前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头. 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, cate

Mysql在建立索引优化时需要注意的问题

设计好mysql的索引可以让你的数据库飞起来,大大的提高数据库效率,设计mysql索引的时候有以下几点注意: 1.创建索引 对于查询占主要的应用来说,索引显得尤为重要.很多时候性能问题很简单的就是因为我们发忘了添加索引而造成的,或者说没有添加更为有效的索引导致.如果不加索引的话,那么查询任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降.但是也不是什么情况下非要加索引不可,比如性别可能就只有两个值,建索引不仅没有优势,还

(转)Mysql哪些字段适合建立索引

工作中处理数据时,发现某个表的数据达到亿条,所以要为表建索引提高查询性能,以下两篇文章总结的很好,记录一下,以备后用. 数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引: 5.索引应该建在选择性高的字段上: 6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引: 7.复合索引的建立需要进行仔细分析:尽量考

mysql之index(索引)(转)

(转)MySQL索引的查看创建和删除 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有3个未索引的表t1.t2.t3,分别只包含列c1.c2.c3,每个表分别含有1000行数据组成,指为1-1000的数值,查找对应值相等行的查询如下所示. SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查

为MySQL数据库添加索引

为mysql数据库建立索引 转载:http://www.cnblogs.com/cy163/archive/2008/10/27/1320798.html 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, category_id int not null default 0, user_id int not null default 0, a

MySQL建立索引的注意事项

对于大数据量的表格,尤其是百万行以上的数据表,一定要对其建立索引,否则查询速度极慢.(参考后面的测试结果)建立索引时需注意: MySQL的索引有两种:单列索引(即在某一列上建索引).多列组合索引(即在多个列上建立同一个索引),不像SQL Server分聚集索引,非聚集索引. 如何建立单列索引: 格式:CREATE INDEX 索引名 on 表名(列名) 例如:CREATE INDEX idx_geoinfo_tiny_cabid ON geoinfo_tiny (cabid)#创建一个名为idx

MySQL建立索引的基础规则

1.mysql索引(基础与规则) 索引规则: 一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15

Mysql建立索引基础

转自:http://www.cnblogs.com/cy163/archive/2008/10/27/1320798.html 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, category_id int not null default 0, user_id int not null default 0, adddate int not