我将原始内容索引到文档中,对于包含电子邮件的文档,比如robby。pond@email.com 我需要在文件上找到robbypond。
目前我正在使用classictokenizer(用于电话号码的特殊处理)和worddelimitergraphfilter,这里是一个简化的分析器链。
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
</analyzer>
</fieldType>
这将使用所有类型的email生成以下令牌。
RobbyPondGmail公司robby pond gmail公司
问题是,我有一个要求,像robbypond这样的搜索将命中文档。是否有任何现有的过滤器或参数集可以用来连接robby和pond令牌,并将robbypond令牌添加到令牌流中?
1条答案
按热度按时间qzlgjiam1#
可以使用Map字符过滤器,它在标记器之前执行,可以替换
.
使用空字符,以便只有相关的标记组合在一起作为比较Shingles
这将是非常昂贵的。创建此类分析器的示例设置
并使用analyze-api检查测试令牌
发布/分析
和生成的代币