Regex 在Solr中索引记录之前清除明文超链接

Regex 在Solr中索引记录之前清除明文超链接,regex,solr,Regex,Solr,我有一个字段,其内容用于从中生成面。我想解决的一个特殊问题是,我的一些内容包含纯文本的超链接,即http://google.com。因此,我开始将http视为我最重要的方面之一。如何确保在索引超链接内容之前过滤掉它?使用某种正则表达式过滤器 我知道,当我将记录添加到Solr时,我可以在客户端完成这个预处理部分。但是,我希望保持所有内容的一致性,并且是Solr管道的一部分,因此,如果可能的话,我希望Solr预处理器能够为我做到这一点。我将使用以下组件解决此问题: 将URL保留为标记 将URL标记替

我有一个字段,其内容用于从中生成面。我想解决的一个特殊问题是,我的一些内容包含纯文本的超链接,即
http://google.com
。因此,我开始将
http
视为我最重要的方面之一。如何确保在索引超链接内容之前过滤掉它?使用某种正则表达式过滤器


我知道,当我将记录添加到Solr时,我可以在客户端完成这个预处理部分。但是,我希望保持所有内容的一致性,并且是Solr管道的一部分,因此,如果可能的话,我希望Solr预处理器能够为我做到这一点。

我将使用以下组件解决此问题:

  • 将URL保留为标记
  • 将URL标记替换为空字符串(搜索堆栈溢出以获得合适的正则表达式模式)
  • A过滤零长度令牌
  • 在schema.xml中:

    <analyzer type="index">
        <tokenizer class="solr.UAX29URLEmailTokenizerFactory" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="..." replacement="" />
        <filter class="solr.LengthFilterFactory" min="1" max="1000" />
    </analyzer>
    
    
    
    请注意,从
    solr.StandardTokenizerFactory
    更改标记器可能会产生超出此答案所述的影响,因此请务必进行测试