[ https://issues.apache.org/jira/browse/LUCENE-7704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15880486#comment-15880486 ]
Sebastian Yonekura Baeza commented on LUCENE-7704: -------------------------------------------------- Oh, sorry I missed those docs, given that it was a deprecated class I didn't pay much attention to it. Indeed, without the javadocs the parameter {{ignoreCase}} was kind of misleading. Thank you [~mikemccand] for the clarification! > SysnonymGraphFilter doesn't respect ignoreCase parameter > -------------------------------------------------------- > > Key: LUCENE-7704 > URL: https://issues.apache.org/jira/browse/LUCENE-7704 > Project: Lucene - Core > Issue Type: Bug > Components: modules/analysis > Affects Versions: 6.4.1 > Reporter: Sebastian Yonekura Baeza > Priority: Minor > Fix For: master (7.0), 6.5.0 > > Attachments: LUCENE-7704.patch > > > Hi, it seems that SynonymGraphFilter doesn't respect ignoreCase parameter. In > particular this test doesn't pass: > {code:title=UppercaseSynonymMapTest.java|borderStyle=solid} > package com.mapcity.suggest.lucene; > import org.apache.lucene.analysis.Analyzer; > import org.apache.lucene.analysis.TokenStream; > import org.apache.lucene.analysis.Tokenizer; > import org.apache.lucene.analysis.core.WhitespaceTokenizer; > import org.apache.lucene.analysis.synonym.SynonymGraphFilter; > import org.apache.lucene.analysis.synonym.SynonymMap; > import org.apache.lucene.util.CharsRef; > import org.apache.lucene.util.CharsRefBuilder; > import org.junit.Test; > import java.io.IOException; > import static > org.apache.lucene.analysis.BaseTokenStreamTestCase.assertTokenStreamContents; > /** > * @author Sebastian Yonekura > * Created on 22-02-17 > */ > public class UppercaseSynonymMapTest { > @Test > public void analyzerTest01() throws IOException { > // This passes > testAssertMapping("word", "synonym"); > // this one not > testAssertMapping("word".toUpperCase(), "synonym"); > } > private void testAssertMapping(String inputString, String outputString) > throws IOException { > SynonymMap.Builder builder = new SynonymMap.Builder(false); > CharsRef input = SynonymMap.Builder.join(inputString.split(" "), new > CharsRefBuilder()); > CharsRef output = SynonymMap.Builder.join(outputString.split(" "), > new CharsRefBuilder()); > builder.add(input, output, true); > Analyzer analyzer = new CustomAnalyzer(builder.build()); > TokenStream tokenStream = analyzer.tokenStream("field", inputString); > assertTokenStreamContents(tokenStream, new String[]{ > outputString, inputString > }); > } > static class CustomAnalyzer extends Analyzer { > private SynonymMap synonymMap; > CustomAnalyzer(SynonymMap synonymMap) { > this.synonymMap = synonymMap; > } > @Override > protected TokenStreamComponents createComponents(String s) { > Tokenizer tokenizer = new WhitespaceTokenizer(); > TokenStream tokenStream = new SynonymGraphFilter(tokenizer, > synonymMap, true); // Ignore case True > return new TokenStreamComponents(tokenizer, tokenStream); > } > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org