时间:2021-07-01 10:21:17 帮助过:3人阅读
将其修改为:
1 <lib dir="../../dist/" regex="solr-dataimporthandler-.*\.jar" /> 2 3 <lib dir="../../contrib/extraction/lib" regex=".*\.jar" /> 4 <lib dir="../../dist/" regex="solr-cell-\d.*\.jar" /> 5 6 <lib dir="../../contrib/clustering/lib/" regex=".*\.jar" /> 7 <lib dir="../../dist/" regex="solr-clustering-\d.*\.jar" /> 8 9 <lib dir="../../contrib/langid/lib/" regex=".*\.jar" /> 10 <lib dir="../../dist/" regex="solr-langid-\d.*\.jar" /> 11 12 <lib dir="../../contrib/velocity/lib" regex=".*\.jar" /> 13 <lib dir="../../dist/" regex="solr-velocity-\d.*\.jar" />
4、将E:\solr-5.2.1\dist目录下的solr-dataimporthandler-5.2.1.jar和solr-dataimporthandler-extras-5.2.1.jar复制到E:\apache-tomcat-7.0.62\webapps\solr\WEB-INF\lib目录下
5、打开E:\apache-tomcat-7.0.62\solr\db\conf\solrconfig.xml,在solrconfig.xml中配置db-data-config.xml的位置,这个文件用于配置连接数据库的信息。
1 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 2 <lst name="defaults"> 3 <str name="config">E:\apache-tomcat-7.0.62\solr\db\conf\db-data-config.xml</str> 4 </lst> 5 </requestHandler>
6、配置db-data-config.xml
1 <dataConfig> 2 <dataSource type="JdbcDataSource" name="test_solr_db" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/timesheet" user="root" password="root"/> 3 <document name="info"> 4 <entity name="item" pk="id" dataSource="test_solr_db" query="select id,name,birthday,addresstt from user"> 5 <field column="id" name="id" /> 6 <field column="name" name="name" /> 7 <field column="birthday" name="birthday" /> 8 <field column="addresstt" name="addresstt" /> 9 </entity> 10 </document> 11 </dataConfig>
1)、dataSource用于配置连接数据库的信息及方式,每一个dataSource就是一个数据库
2)、entity用于配置从哪个表中读取数据,每一个entity就是一张表
3)、一个配置文件也可以配置多个数据库,在配置entity时,为其dataSource属性设置一个数据库连接即可
4)、如果存在多表连接,则可以使用entity嵌套的方式解决问题
1 <entity name="item" query="select * from item" 2 deltaQuery="select id from item where last_modified > ‘${dataimporter.last_index_time}‘"> 3 <field column="NAME" name="name" /> 4 5 <entity name="feature" 6 query="select DESCRIPTION from FEATURE where ITEM_ID=‘${item.ID}‘" 7 deltaQuery="select ITEM_ID from FEATURE where last_modified > ‘${dataimporter.last_index_time}‘" 8 parentDeltaQuery="select ID from item where ID=${feature.ITEM_ID}"> 9 <field name="features" column="DESCRIPTION" /> 10 </entity> 11 12 <entity name="item_category" 13 query="select CATEGORY_ID from item_category where ITEM_ID=‘${item.ID}‘" 14 deltaQuery="select ITEM_ID, CATEGORY_ID from item_category where last_modified > ‘${dataimporter.last_index_time}‘" 15 parentDeltaQuery="select ID from item where ID=${item_category.ITEM_ID}"> 16 <entity name="category" 17 query="select DESCRIPTION from category where ID = ‘${item_category.CATEGORY_ID}‘" 18 deltaQuery="select ID from category where last_modified > ‘${dataimporter.last_index_time}‘" 19 parentDeltaQuery="select ITEM_ID, CATEGORY_ID from item_category where CATEGORY_ID=${category.ID}"> 20 <field column="DESCRIPTION" name="cat" /> 21 </entity> 22 </entity> 23 </entity>
这个链接也是有限制的:
子Entity的query必须引用父Entity的pk
子Entity的parentDeltaQuery必须引用自己的pk
子Entity的parentDeltaQuery必须返回父Entity的pk
deltaImportQuery引用的必须是自己的pk
7、配置完成db-data-config.xml后,如果我们想把查询出来的这些数据都存储到solr中,就需要在schema.xml中配置了,schema.xml与db-data-config.xml是同一目录
1 <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 2 <field name="name" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 3 <field name="birthday" type="date" indexed="true" stored="true" required="true" multiValued="false" /> 4 <field name="addresstt" type="string" indexed="true" stored="true" required="true" multiValued="false" />
因为在schema.xml中有solr给出的一些配置例子可能会跟我们自己配置的<field>结点发生冲突,可以将schema.xml文件中默认的<field>、<dynamicField>、<copyField>都注释掉
到此配置结束
8、测试
1)、浏览器方式:
终止跑索引 http://localhost:8080/solr/db/dataimport?command=abort
开始索引 http://localhost:8080/solr/db/dataimport?command=full-import
增量索引 http://localhost:8080/solr/db/dataimport?command=delta-import
2)、图形化方式
solr5.2.1连接数据库
标签: