Lucene:如何添加新术语以使用过滤器进行查询?
Lucene: How to add a new term to query using a Filter?
我正在尝试编写一个 Lucene 过滤器,它用 'what is' 替换“什么是”、用 'cannot' 替换“不能”等术语
在 incrementToken()
中,如果该术语是我要替换的字符串之一,我会计算一个替换字符串(例如什么是 -> 什么是)并将其推送到 CharTermAttribute:
termAttr.copyBuffer(replacement.toCharArray, 0, replacement.length)
但这似乎不起作用,当我搜索“what's”时,我仍然得到包含“what's”的结果,而不是将字符串视为 'what is'。
完成此任务的正确方法是什么?我需要创建分词器吗? (理想情况下,我想保留 StandardTokenizer 并添加到它而不是替换它)
这可以使用分词器而不是过滤器来解决。
我正在尝试编写一个 Lucene 过滤器,它用 'what is' 替换“什么是”、用 'cannot' 替换“不能”等术语
在 incrementToken()
中,如果该术语是我要替换的字符串之一,我会计算一个替换字符串(例如什么是 -> 什么是)并将其推送到 CharTermAttribute:
termAttr.copyBuffer(replacement.toCharArray, 0, replacement.length)
但这似乎不起作用,当我搜索“what's”时,我仍然得到包含“what's”的结果,而不是将字符串视为 'what is'。
完成此任务的正确方法是什么?我需要创建分词器吗? (理想情况下,我想保留 StandardTokenizer 并添加到它而不是替换它)
这可以使用分词器而不是过滤器来解决。