好久都没,记录博客了,其实写博客,对个人还是很有必要的。
Solr做全量索引(版本 7.7.1)
目的: 将数据库中的数据全部导入solr ,能显示出来!
全量导入:一次性全导入。
增量导入:数据库中,新增的,修改的数据导入==>所以数据库中必须有一列,用来记录最后修改时间,做增量时
1.先创建core
可以在管理中心创建,也可命令行创建
管理中心:
命令行: 由于不知道,输入,查看帮助:
-d confdir ==> 不是必须的,可设可不设
-p port 是你启动solr时的端口号
创建后 在 server->solr->中
主要关心三个配置文件:manager-schema,solrConfig.xml ,==>自己生成的
data-config.xml ==》你自己创建的
它们都在你创建的core里
manager-schema ===>你数据库里的对象的属性,需要在这个文件里定义
比如:
数据库中的last_update_time列,name中不能有下划线这种,比如:name="last_update_time",查出来了也显示不出来
<field name="lastUpdateTime" type="date" indexed="true" stored="true" multiValued="false" />
<field>标签是定义数据库中列的属性的,比如在这里我把last_update_time定义为 type为date类型,indexed=true表示索引,stored=true表示储存。。。。等,你可以自己定义
但type="date" ==>date是solr中没有这个类型,是我用fieldType标签定义这个类型的
<fieldType name="date" class="solr.TrieDateField" sortMissingLast="true" omitNorms="true"/>
<uniqueKey>id</uniqueKey> =》表明你的id
solrConfig.xml 主要是配置这个就行了:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str> data-config.xml 名字自定义,然后在同级目录下创建
</lst>
</requestHandler>
你要问我,上面是干什么的,咱也不知道,咱也不敢乱说,大概根数据导入有关吧:
刚刚上面定义了一个data-config.xml 它的作用是写了数据库信息, 还有还有将数据库中数据转化为对象<entity>做映射
<dataConfig>
<dataSource name="default-dataSource" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/solr"
user="root"
password="19971020jxh" />
<document>
<entity name="people" pk="id" dataSource="default-dataSource" transformer="DateFormatTransformer"
全量导入
query="SELECT id,name,last_update_time FROM people "
下面两句是增量导入
deltaImportQuery="SELECT id,name,last_update_time FROM people WHERE id =${dataimporter.delta.id}"
deltaQuery="SELECT id FROM people WHERE last_update_time >
最后修改时间 大于号
'${dataimporter.last_index_time}'" >
==> 这里 一定不要少了冒号' ,最后索引时间dataimport.properties中记录了
<field column="id" name="id" />
<field column="name" name="name"/>
<field column="last_update_time" name="lastUpdateTime" />
数据库列 Solr中
</entity>
</document>
</dataConfig>
你看,这里比较宽松,query是全量导入,但是全量导入,怎么个导入法,的sql,你可以完全自定义
还有jar包:solr-dataimport-*.jar和mysql-connector-java-某一版本.jar ,放到solr-> server->lib下
..等你配置好后,
启动