首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引CJK和剥离HTML标记

索引CJK和剥离HTML标记
EN

Stack Overflow用户
提问于 2013-03-08 14:28:32
回答 1查看 506关注 0票数 1

我正在使用solr,一个eZ发布到eZ的前端,来索引一些包含日语文本和html标签的字段。

我在schema.xml中修改了文本分析器,如下所示:

代码语言:javascript
复制
<fieldType name="text" class="solr.TextField">
    <analyzer>
        <charFilter class="solr.HTMLStripCharFilterFactory"/>
        <tokenizer class="solr.CJKTokenizerFactory"/>
    </analyzer>
</fieldType>

例如,如果我的自定义字段包含:

代码语言:javascript
复制
<h1>ほげほげ<h1>
<p>すもももももももものうち</p>

我在solr admin中搜索すもも,结果中有html标记:

代码语言:javascript
复制
<str name="attr_free_1_t"><h1>ほげほげ<h1><p>すもももももももものうち</p></str>

如何防止HTML标记被编入索引?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-08 18:19:52

通过使用solr.HTMLStripCharFilterFactory,您只能阻止HTML标记被“索引”,而不能阻止被“存储”

换句话说,您将获得"すもももももももものうち" (当然是带有HTML标记)的结果,但不是"<p>すもももももももものうち</p>"的结果。

注意:的建议是在搜索过程中不要去掉html标签。

如果你不希望这些超文本标记语言被索引,你可以使用solr.PatternReplaceCharFilterFactory

您的配置可能如下所示:

代码语言:javascript
复制
    <analyzer>
        <charFilter class="solr.PatternReplaceCharFilterFactory" 
                    pattern="Your regular expression to match HTML tags" 
                    replacement=""/>
        <tokenizer class="solr.CJKTokenizerFactory"/>
    </analyzer>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15288053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档