1. 先在本地的solr_db库下建一张solr_tb表(字段:id,name,price,desc),添加了5条数据,如下图。
2. 还记得上篇中安装solr的目录结构吗?打开D:\phpServer\solr\solr1\home\collection1\conf目录,暂且称这个目录为“配置文件目录”了。打开配置文件目录下的solrconfig.xml文件,在此文件的<config></config>标签之间的任一地方(最好是前面)添加如下代码:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
3. 在当前目录下新建一个名为data-config.xml的文件,在文件中添加如下配置信息,此信息为你要连接的mysql库的信息,请如实填写(数据库为solr_db,数据表为solr_tb)。
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/solr_db"
user="root"
password="root" />
<document>
<entity name="solr_tb" transformer="DateFormatTransformer"
query="select id,name FROM solr_tb where id >= ${dataimporter.request.id}">
</entity>
</document>
</dataConfig>
4. 找到同级目录下面的schema.xml(字段配置)文件,先将此文件备份一下,然后打开schema.xml,全选->删除,再将下面这段粘贴到schema.xml文件中。因为我们暂时用不到那么多参数,所以为了便于初学和理解,简化了一下。
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.5">
<!-- 要建立的索引,_version_这个不能省略 -->
<fields>
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="name" type="text_general" indexed="true" stored="true" />
<field name="_version_" type="long" indexed="true" stored="true"/>
</fields>
<!-- 字段类型,配置上面字段<field>中出现的类型即可 -->
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
<!-- text_general能对中文分词 -->
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
</types>
<!-- 唯一字段 -->
<uniqueKey>id</uniqueKey>
<!-- 设置默认查询字段,设置此处为name后,还要在solrconfig.xml中设置name="/select"中为<str name="df">name</str>。具体设置方法请参考:https://www.daixiaorui.com/read/141.html -->
<defaultSearchField>name</defaultSearchField>
<!-- 查询转换模式,是并且还是或者(and/or) -->
<solrQueryParser defaultOperator="OR"/>
</schema>
说明一下:“<fields>”标签,就是配置你要建立索引的字段。我现在需要建立id,name两个字段,
即 <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/> 和 <field name="name" type="text_general" indexed="true" stored="true" /> 也就是对应第3步中select id,name FROM solr_tb这里的字段。了解一下fields标签。
5.在D:\phpServer\solr\dist目录中复制solr-dataimporthandler-4.7.0.jar、solr-dataimporthandler-extras-4.7.0.jar和mysql-connector-java-5.1.7-bin.jar(这个没有?点击下载)复制到D:\phpServer\solr\solr1\tomcat\webapps\solr\WEB-INF\lib目录中。
6.重启tomcat服务,访问http://localhost:8080/solr/,在左侧的菜单中的下拉选择collection1,然后再载入的菜单中选择Dataimport选项,是不是已经出现了如下图所示的界面呢。如果出现则表示成功了。接着按如下图的指示,现在开始导入数据吧!
注:Custom Parameters 参数是第3步select语句中的id >= ${dataimporter.request.id},这里填id=1,即从id为1的数据开始导入,这样对于数据较大的表,可以控制分成几步导入。
Clean选项表示是否删除未匹配到的数据,也就是在数据库select结果中没有,而solr索引库中存在的时候,则删除。
8.出现如下图所示的界面则表示导入成功了。
9.现在点击左侧的Query切换到查询页面,查看一下吧。
文章出自:https://www.daixiaorui.com/read/145.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。
蛋仔派对无限蛋币http://www.wzryzs.com/
666
666
很好的方法值得推荐
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/