동의어 그래프를 테스트하려고했지만 예상대로 작동하지 않으며 정답을 반환하지 않습니다.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);
}
이 그녀의 동의어 "FEDERICO에 대해"Alcalde은 KOOPER "문자열을 변경 주장 작업을 예상
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"
});
테스트 코드 쿠퍼 (COOPER) "라고 말하지만, 이것은 일어나지 않습니다.
누군가 내 오류가 어디인지 또는 내 코드가 작동하지 않는 이유를 알고 있습니까?
표시되는 오류는 무엇인가요? –
@ M.Prokhorov 나는 그녀의 동의어 "FEDERICO COOPER"에 대한 "ALCALDE KOOPER"문자열을 변경하는 단언 작업을 기대했지만 이것은 발생하지 않습니다. – Figa17