我正在尝试编写一个 Lucene 过滤器,它将“what's”替换为“what is”,“can't”替换为“cannot”等。
如果incrementToken()该术语是我要替换的字符串之一,我会计算一个替换字符串(例如什么 -> 什么)并将其推送到 CharTermAttribute:
termAttr.copyBuffer(replacement.toCharArray, 0, replacement.length)
但这似乎不起作用,当我搜索'what's'时,我仍然得到包含'what's'的结果,而不是将字符串视为'what's'。
实现这一目标的正确方法是什么?我需要创建分词器吗?(理想情况下,我想保留 StandardTokenizer 并添加到它而不是替换它)