我試圖測試同義詞圖,但不工作如何,因爲我的預期,並沒有返回正確的答案。爲什麼測試SynonymGraphFilter Lucene不起作用?
這是我的自定義分析儀的createComponents自定義方法
public SuggestAnalizer(SynonymMap synonymMap) {
this.synonymMap = synonymMap;
this.stopList = Collections.emptyList();
}
@Override
protected TokenStreamComponents createComponents(String s) {
Tokenizer tokenizer = new StandardTokenizer();
TokenStream tokenStream = new SynonymGraphFilter(tokenizer, synonymMap, true);
tokenStream = new FlattenGraphFilter(tokenStream);
return new TokenStreamComponents(tokenizer, tokenStream);
}
這是測試代碼
String entrada = "ALCALDE KOOPER";
String salida = "FEDERICO COOPER";
SynonymMap.Builder builder = new SynonymMap.Builder(true);
CharsRef input = SynonymMap.Builder.join(entrada.split(" "), new CharsRefBuilder());
CharsRef output = SynonymMap.Builder.join(salida.split(" "), new CharsRefBuilder());
builder.add(output, input, true);
suggestAnalizer = new SuggestAnalizer(builder.build());
TokenStream tokenStream = suggestAnalizer.tokenStream("field", entrada2);
assertTokenStreamContents(tokenStream, new String[]{
"FEDERICO"
});
assertAnalyzesTo(suggestAnalizer, entrada, new String[]{
"FEDERICO"
});
我預計斷言工作改變了她的代名詞「FEDERICO的「ALCALDE KOOPER」串COOPER「,但這不會發生。
有人知道我的錯誤在哪裏或爲什麼我的代碼不起作用?
請告訴我們你看到的錯誤是什麼。 –
@ M.Prokhorov我期待斷言工作改變了她的同義詞「FEDERICO COOPER」的「ALCALDE KOOPER」字符串,但是這沒有發生。 – Figa17