当Solr构建索引时,它会获取电子邮件地址的一部分。
例如,如果我有这样的电子邮件:foo@bar.com,Solr会将单词“foo”和“barcom”编入索引。
我想删除这些词,但我不知道该怎么做。我尝试修改配置文件schema.xml,在索引字段上添加此规则:
<filter class="solr.PatternReplaceFilterFactory" pattern=" (.*)@(.*) " replacement=" " replace="all"/>
然而,它不起作用。
答案 0 :(得分:0)
您可以detect tokens as a e-mailaddress and blacklist them使用
<fieldType name="emails" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
<filter class="solr.TypeTokenFilterFactory" types="email_type.txt" useWhitelist="true"/>
</analyzer>
</fieldType>