Linux+Solr+Zookeeper-05:通过DataImport功能手动导入MySql的数据至Solr数据库
[超级连接:Linux+Solr+Zookeeper系列-序章]
我们在用Solr进行存储时,有时会存储html标签,如:通过富文本编辑器生成的文本内容等。
在全文检索的结果处理时,可能又不想要这些html标签。
本文讲述如何去除Html标签。
1.原有数据源配置:
<dataConfig>
<!-- dataSource config -->
<dataSource name="news_db" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://130.10.8.100:3306/exam" user="root" password="1qaz@WSX"/>
<!-- document config -->
<document>
<!-- entity config -->
<entity dataSource="news_db" name="news"
query="select id,title,article from news where valid = '1'"
deltaQuery="select id from news where update_time > '${dataimporter.last_index_time}'"
deletedPkQuery="select id from news where valid = '0'"
deltaImportQuery="select id,title,article from news where id='${dih.delta.id}'">
<!-- field config -->
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="article" name="article"/>
</entity>
</document>
</dataConfig>
2.配置方式
2.1.修改entity配置
在news-data-config.xml
中的entity标签
里边添加transformer="HTMLStripTransformer"
。
<dataConfig>
<!-- dataSource config -->
<dataSource .../>
<!-- document config -->
<document>
<!-- entity config -->
<entity dataSource="news_db" name="news" transformer="HTMLStripTransformer"
...>
<!-- field config -->
</entity>
</document>
</dataConfig>
2.在news-data-config.xml
中的field
字段需要过滤html代码的字段添加 stripHTML="true"
。
<dataConfig>
<!-- dataSource config -->
<dataSource .../>
<!-- document config -->
<document>
<!-- entity config -->
<entity ...>
<!-- field config -->
...
<field column="article" name="article" stripHTML="true"/>
</entity>
</document>
</dataConfig>
3.修改managed-schema
文件中的<analyzer type="query">
标记中的内容,添加<charFilter class="solr.HTMLStripCharFilterFactory"/>
。
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<charFilter class="solr.HTMLStripCharFilterFactory" />
</analyzer>