1 加入相关jar包
将2个相关jar包复制到/opt/solr-7.7.1/server/solr-webapp/webapp/WEB-INF/lib文件夹下
jar包名称
solr-dataimporthandler-extras-7.7.1.jar
solr-dataimporthandler-7.7.1.jar
jar包所在位置/opt/solr-7.7.1/dist
并将连接oracle的jar包也复制到该目录下
2 配置Core下的solrconfig.xml文件
/opt/solr-7.7.1/server/solr/article_core/conf/solrconfig.xml
加入到<config></config>标签内
<!-- import date--> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
3 在conf中创建data-config.xml
/opt/solr-7.7.1/server/solr/article_core/conf中
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <dataSource type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@ip地址:1521:ORCL" user="连接数据库用户名" password="连接数据库密码"/> <document> <entity name="bookInfo" query="SELECT BOOK_ID, TITLE_CN, TITLE_EN, KEYWORDS_CN, KEYWORDS_EN from EL.T_BOOK_INFO"> <field column="BOOK_ID" name="id"/> <field column="TITLE_CN" name="titleCn"/> <field column="TITLE_EN" name="titleEN"/> <field column="KEYWORDS_CN" name="keywordsCn"/> <field column="KEYWORDS_EN" name="keywordsEn"/> </entity> </document> </dataConfig>
4在schema.xml中添加域
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="titleCn" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> <field name="titleEn" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> <field name="keywordsCn" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> <field name="keywordsEn" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
其中field中的name值与data-config.xml中的name值一样
5重启solr服务
bin/solr restart
执行添加 10万条数据大概用时1m30s