这章开始记录如何从数据库导入数据到solr
准备
- solr 6.6.0版本
- sqlserver数据库
- sqlservier数据库驱动
- solr core(jobseeker)
- IKAnalyzer
开始
1. 把数据库驱动程序包复制到Tomcat 9.0\webapps\solr\WEB-INF\lib中;
2. 在solrhome根目录下面新建extract
文件夹;
3. 将solr-6.6.0\solr-6.6.0\contrib\extraction\lib
下所有jar包复制到Tomcat 9.0\webapps\solr\solrhome\extract
中;
4. 将solr-6.6.0\solr-6.6.0\dist
下的solr-cell-6.6.0.jar
复制到Tomcat 9.0\webapps\solr\solrhome\extract
中;
5. 复制\solr-6.6.0\solr-6.6.0\dist
下的solr-dataimporthandler-6.6.0.jar
和solr-dataimporthandler-extras-6.6.0.jar
这两个文件到Tomcat 9.0\webapps\solr\WEB-INF\lib中;
6. 打开Tomcat 9.0\webapps\solr\solrhome\Jobseeker\conf
下的solrconfig.xml
文件,找到如下代码:
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
在后面添加<lib dir="../extract" regex=".*\.jar" />
7. 找到
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="fmap.meta">ignored_</str>
<str name="fmap.content">_text_</str>
</lst>
</requestHandler>
在<lst
子节点添加
<str name="uprefix">attr_</str>
<str name="captureAttr">true</str>
uprefix : 如果指定了该参数,任何在schema中未定义的字段,都将以该参数指定的值作为字段名前缀。
captureAttr :(true|false)捕获属性,对Tika XHTML 元素的属性进行索引。
8. 在requestHandler
后面添加
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
- 在
webapps\solr\solrhome\Jobseeker\conf
下面新建data-config.xml
,打开加入以下代码
<?xml version="1.0" encoding="utf-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://ip:端口;DatabaseName=数据库名"
user="数据库账号"
password="数据库密码"/>
<document name="article">
<entity name="article" pk="Id" query="Select Id,Title,Content From Article">
<field column="Id" name="id" />
<field column="Title" name="title" />
<field column="Content" name="content" />
</entity>
</document>
</dataConfig>
这里<field column="Id" name="id" />
,column
是指数据库字段,name
对应索引文档的field
10. 打开solr\solrhome\Jobseeker\conf
下的managed-schema
文件,找到
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!-- doc values are enabled by default for primitive types such as long so we don't index the version field -->
<field name="_version_" type="long" indexed="false" stored="false"/>
<field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
<field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
定义默认字段的地方,添加上面数据库导入的字段(id,title,content
)
11. 进入solr管理后台http://localhost:8080/solr/index.html#/Jobseeker/dataimport//dataimport生成索引