我需要Solr才能在搜索时将#摩尔识别为#M(反之亦然),并将#Normal识别为#N(反之亦然)。
我有很多文件名称中包含6摩尔,1摩尔或0.5摩尔,但是很多时候这些文件被写为6M或1M或0.5M。我希望Solr能够在搜索时将#摩尔识别为#M(反之亦然),除了可能有多个数字(例如12M)或十进制(例如0.1M)之外。
无法弄清楚如何使用同义词或其他任何方法。 Solr版本是6.2.1
答案 0 :(得分:3)
为此,我可能会在您的分析仪中添加一个PatternReplaceCharFilter。
类似的东西:
<analyzer>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="(\d+(.\d+)?)M" replacement="$1 Molar"/>
<tokenizer ...
</analyzer>
CharFilters在令牌化发生之前对输入进行预处理,因此您不必担心跨多个术语的模式(就像使用PatternReplace令牌过滤器时那样)或降低大小写,以防您也遇到了麻烦。>