我正在使用solr,一个eZ发布到eZ的前端,来索引一些包含日语文本和html标签的字段。
我在schema.xml中修改了文本分析器,如下所示:
<fieldType name="text" class="solr.TextField">
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.CJKTokenizerFactory"/>
</analyzer>
</fieldType>例如,如果我的自定义字段包含:
<h1>ほげほげ<h1>
<p>すもももももももものうち</p>我在solr admin中搜索すもも,结果中有html标记:
<str name="attr_free_1_t"><h1>ほげほげ<h1><p>すもももももももものうち</p></str>如何防止HTML标记被编入索引?
提前谢谢。
发布于 2013-03-08 18:19:52
通过使用solr.HTMLStripCharFilterFactory,您只能阻止HTML标记被“索引”,而不能阻止被“存储”。
换句话说,您将获得"すもももももももものうち" (当然是带有HTML标记)的结果,但不是"<p>すもももももももものうち</p>"的结果。
注意:的建议是在搜索过程中不要去掉html标签。
如果你不希望这些超文本标记语言被索引,你可以使用solr.PatternReplaceCharFilterFactory。
您的配置可能如下所示:
<analyzer>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="Your regular expression to match HTML tags"
replacement=""/>
<tokenizer class="solr.CJKTokenizerFactory"/>
</analyzer>https://stackoverflow.com/questions/15288053
复制相似问题