WordnetSynonymParser在Lucene

我是Lucene的新手,我正在尝试使用WordnetSynonymParser来使用wordnet同义词prolog扩展查询。 这就是我现在所拥有的:

public class CustomAnalyzer extends Analyzer { @Override protected TokenStreamComponents createComponents(String fieldName, Reader reader){ // TODO Auto-generated method stub Tokenizer source = new ClassicTokenizer(Version.LUCENE_47, reader); TokenStream filter = new StandardFilter(Version.LUCENE_47, source); filter = new LowerCaseFilter(Version.LUCENE_47,filter); SynonymMap mySynonymMap = null; try { mySynonymMap = buildSynonym(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } filter = new SynonymFilter(filter, mySynonymMap, false); return new TokenStreamComponents(source, filter); } private SynonymMap buildSynonym() throws IOException { File file = new File("wn/wn_s.pl"); InputStream stream = new FileInputStream(file); Reader rulesReader = new InputStreamReader(stream); SynonymMap.Builder parser = null; parser = new WordnetSynonymParser(true, true, new StandardAnalyzer(Version.LUCENE_47)); ((WordnetSynonymParser) parser).add(rulesReader); SynonymMap synonymMap = parser.build(); return synonymMap; } } 

我得到错误“方法添加(CharsRef,CharsRef,boolean)类型SynonymMap.Builder不适用于参数(Reader)”

但是,WordnetSynonymParser的文档需要add函数的Reader参数。

我在这做错了什么? 任何帮助表示赞赏。

如果您看到文档声明WordNetSynonymParser有一个方法add(Reader) ,您可能正在查看旧版本的文档。 4.7的源代码中肯定没有这种方法。 从版本4.6.0开始,您要查找的方法是WordnetSynonymParser.parse(Reader)