从solr索引中删除电子邮件地址

时间:2013-12-18 10:33:40

标签: email solr filter indexing

当Solr构建索引时,它会获取电子邮件地址的一部分。

例如,如果我有这样的电子邮件:foo@bar.com,Solr会将单词“foo”和“barcom”编入索引。

我想删除这些词,但我不知道该怎么做。我尝试修改配置文件schema.xml,在索引字段上添加此规则:

<filter class="solr.PatternReplaceFilterFactory" pattern=" (.*)@(.*) " replacement=" " replace="all"/>

然而,它不起作用。

1 个答案:

答案 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>