List of usage examples for org.apache.commons.codec.language.bm RuleType EXACT
RuleType EXACT
To view the source code for org.apache.commons.codec.language.bm RuleType EXACT.
Click Source Link
From source file:com.jaeksoft.searchlib.analysis.filter.PhoneticFilter.java
@Override public void initProperties() throws SearchLibException { super.initProperties(); addProperty(ClassPropertyEnum.CODEC, BEIDER_MORSE, CODEC_LIST, 0, 0); addProperty(ClassPropertyEnum.MAX_PHONEMES, "10", null, 10, 1); addProperty(ClassPropertyEnum.BEIDER_MORSE_RULE, RuleType.EXACT.name(), ClassPropertyEnum.BEIDER_MORSE_RULES, 0, 0); }
From source file:com.example.PhoneticTokenFilterFactory.java
@Inject public PhoneticTokenFilterFactory(Index index, IndexSettingsService indexSettingsService, @Assisted String name, @Assisted Settings settings) {/*from w ww . j a v a2s . co m*/ super(index, indexSettingsService.getSettings(), name, settings); this.languageset = null; this.nametype = null; this.ruletype = null; this.maxcodelength = 0; this.replace = settings.getAsBoolean("replace", true); // weird, encoder is null at last step in SimplePhoneticAnalysisTests, so we set it to metaphone as default String encodername = settings.get("encoder", "metaphone"); if ("metaphone".equalsIgnoreCase(encodername)) { this.encoder = new Metaphone(); } else if ("soundex".equalsIgnoreCase(encodername)) { this.encoder = new Soundex(); } else if ("caverphone1".equalsIgnoreCase(encodername)) { this.encoder = new Caverphone1(); } else if ("caverphone2".equalsIgnoreCase(encodername)) { this.encoder = new Caverphone2(); } else if ("caverphone".equalsIgnoreCase(encodername)) { this.encoder = new Caverphone2(); } else if ("refined_soundex".equalsIgnoreCase(encodername) || "refinedSoundex".equalsIgnoreCase(encodername)) { this.encoder = new RefinedSoundex(); } else if ("cologne".equalsIgnoreCase(encodername)) { this.encoder = new ColognePhonetic(); } else if ("double_metaphone".equalsIgnoreCase(encodername) || "doubleMetaphone".equalsIgnoreCase(encodername)) { this.encoder = null; this.maxcodelength = settings.getAsInt("max_code_len", 4); } else if ("bm".equalsIgnoreCase(encodername) || "beider_morse".equalsIgnoreCase(encodername) || "beidermorse".equalsIgnoreCase(encodername)) { this.encoder = null; this.languageset = settings.getAsArray("languageset"); String ruleType = settings.get("rule_type", "approx"); if ("approx".equalsIgnoreCase(ruleType)) { ruletype = RuleType.APPROX; } else if ("exact".equalsIgnoreCase(ruleType)) { ruletype = RuleType.EXACT; } else { throw new IllegalArgumentException( "No matching rule type [" + ruleType + "] for beider morse encoder"); } String nameType = settings.get("name_type", "generic"); if ("GENERIC".equalsIgnoreCase(nameType)) { nametype = NameType.GENERIC; } else if ("ASHKENAZI".equalsIgnoreCase(nameType)) { nametype = NameType.ASHKENAZI; } else if ("SEPHARDIC".equalsIgnoreCase(nameType)) { nametype = NameType.SEPHARDIC; } } else if ("koelnerphonetik".equalsIgnoreCase(encodername)) { this.encoder = new KoelnerPhonetik(); } else if ("haasephonetik".equalsIgnoreCase(encodername)) { this.encoder = new HaasePhonetik(); } else if ("nysiis".equalsIgnoreCase(encodername)) { this.encoder = new Nysiis(); } else if ("daitch_mokotoff".equalsIgnoreCase(encodername)) { this.encoder = new DaitchMokotoffSoundex(); } else { throw new IllegalArgumentException("unknown encoder [" + encodername + "] for phonetic token filter"); } }
From source file:org.apache.lucene.analysis.phonetic.TestBeiderMorseFilter.java
@Override public void setUp() throws Exception { super.setUp(); analyzer = new Analyzer() { @Override/* www . j a v a2s . c o m*/ protected TokenStreamComponents createComponents(String fieldName) { Tokenizer tokenizer = new MockTokenizer(MockTokenizer.WHITESPACE, false); return new TokenStreamComponents(tokenizer, new BeiderMorseFilter(tokenizer, new PhoneticEngine(NameType.GENERIC, RuleType.EXACT, true))); } }; }
From source file:org.apache.lucene.analysis.phonetic.TestBeiderMorseFilter.java
/** restrict the output to a set of possible origin languages */ public void testLanguageSet() throws Exception { final LanguageSet languages = LanguageSet.from(new HashSet<String>() { {/*from www .ja va 2s . com*/ add("italian"); add("greek"); add("spanish"); } }); Analyzer analyzer = new Analyzer() { @Override protected TokenStreamComponents createComponents(String fieldName) { Tokenizer tokenizer = new MockTokenizer(MockTokenizer.WHITESPACE, false); return new TokenStreamComponents(tokenizer, new BeiderMorseFilter(tokenizer, new PhoneticEngine(NameType.GENERIC, RuleType.EXACT, true), languages)); } }; assertAnalyzesTo(analyzer, "Angelo", new String[] { "andZelo", "angelo", "anxelo" }, new int[] { 0, 0, 0, }, new int[] { 6, 6, 6, }, new int[] { 1, 0, 0, }); analyzer.close(); }
From source file:org.apache.lucene.analysis.phonetic.TestBeiderMorseFilter.java
public void testEmptyTerm() throws IOException { Analyzer a = new Analyzer() { @Override/* ww w . ja v a 2 s. co m*/ protected TokenStreamComponents createComponents(String fieldName) { Tokenizer tokenizer = new KeywordTokenizer(); return new TokenStreamComponents(tokenizer, new BeiderMorseFilter(tokenizer, new PhoneticEngine(NameType.GENERIC, RuleType.EXACT, true))); } }; checkOneTerm(a, "", ""); a.close(); }
From source file:org.apache.lucene.analysis.phonetic.TestBeiderMorseFilter.java
public void testCustomAttribute() throws IOException { TokenStream stream = new MockTokenizer(MockTokenizer.KEYWORD, false); ((Tokenizer) stream).setReader(new StringReader("D'Angelo")); stream = new PatternKeywordMarkerFilter(stream, Pattern.compile(".*")); stream = new BeiderMorseFilter(stream, new PhoneticEngine(NameType.GENERIC, RuleType.EXACT, true)); KeywordAttribute keyAtt = stream.addAttribute(KeywordAttribute.class); stream.reset();/*from w w w . j av a 2 s .co m*/ int i = 0; while (stream.incrementToken()) { assertTrue(keyAtt.isKeyword()); i++; } assertEquals(12, i); stream.end(); stream.close(); }
From source file:org.elasticsearch.index.analysis.PhoneticTokenFilterFactory.java
public PhoneticTokenFilterFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) {// www . j a v a2 s . c o m super(indexSettings, name, settings); this.languageset = null; this.nametype = null; this.ruletype = null; this.maxcodelength = 0; this.replace = settings.getAsBoolean("replace", true); // weird, encoder is null at last step in SimplePhoneticAnalysisTests, so we set it to metaphone as default String encodername = settings.get("encoder", "metaphone"); if ("metaphone".equalsIgnoreCase(encodername)) { this.encoder = new Metaphone(); } else if ("soundex".equalsIgnoreCase(encodername)) { this.encoder = new Soundex(); } else if ("caverphone1".equalsIgnoreCase(encodername)) { this.encoder = new Caverphone1(); } else if ("caverphone2".equalsIgnoreCase(encodername)) { this.encoder = new Caverphone2(); } else if ("caverphone".equalsIgnoreCase(encodername)) { this.encoder = new Caverphone2(); } else if ("refined_soundex".equalsIgnoreCase(encodername) || "refinedSoundex".equalsIgnoreCase(encodername)) { this.encoder = new RefinedSoundex(); } else if ("cologne".equalsIgnoreCase(encodername)) { this.encoder = new ColognePhonetic(); } else if ("double_metaphone".equalsIgnoreCase(encodername) || "doubleMetaphone".equalsIgnoreCase(encodername)) { this.encoder = null; this.maxcodelength = settings.getAsInt("max_code_len", 4); } else if ("bm".equalsIgnoreCase(encodername) || "beider_morse".equalsIgnoreCase(encodername) || "beidermorse".equalsIgnoreCase(encodername)) { this.encoder = null; this.languageset = settings.getAsList("languageset"); String ruleType = settings.get("rule_type", "approx"); if ("approx".equalsIgnoreCase(ruleType)) { ruletype = RuleType.APPROX; } else if ("exact".equalsIgnoreCase(ruleType)) { ruletype = RuleType.EXACT; } else { throw new IllegalArgumentException( "No matching rule type [" + ruleType + "] for beider morse encoder"); } String nameType = settings.get("name_type", "generic"); if ("GENERIC".equalsIgnoreCase(nameType)) { nametype = NameType.GENERIC; } else if ("ASHKENAZI".equalsIgnoreCase(nameType)) { nametype = NameType.ASHKENAZI; } else if ("SEPHARDIC".equalsIgnoreCase(nameType)) { nametype = NameType.SEPHARDIC; } } else if ("koelnerphonetik".equalsIgnoreCase(encodername)) { this.encoder = new KoelnerPhonetik(); } else if ("haasephonetik".equalsIgnoreCase(encodername)) { this.encoder = new HaasePhonetik(); } else if ("nysiis".equalsIgnoreCase(encodername)) { this.encoder = new Nysiis(); } else if ("daitch_mokotoff".equalsIgnoreCase(encodername)) { this.encoder = new DaitchMokotoffSoundex(); } else { throw new IllegalArgumentException("unknown encoder [" + encodername + "] for phonetic token filter"); } }
From source file:org.mitre.opensextant.phonetic.Phoneticizer.java
public Phoneticizer() { // populate the algorithms Map with an instance of each encoder // first the ones from Apache Commons BeiderMorseEncoder bmExact = new BeiderMorseEncoder(); bmExact.setRuleType(RuleType.EXACT); bmExact.setConcat(false);//from w w w . j a va 2 s .c o m BeiderMorseEncoder bmApprox = new BeiderMorseEncoder(); bmApprox.setRuleType(RuleType.APPROX); bmApprox.setConcat(false); // StringEncoder caver = new Caverphone(); StringEncoder caver1 = new Caverphone1(); StringEncoder caver2 = new Caverphone2(); StringEncoder colgne = new ColognePhonetic(); DoubleMetaphone doubleMeta = new DoubleMetaphone(); doubleMeta.setMaxCodeLen(10); StringEncoder meta = new Metaphone(); StringEncoder refinedSound = new RefinedSoundex(); StringEncoder sound = new Soundex(); // now, the home-brewed ones StringEncoder noop = new NullEncoder(); StringEncoder caser = new CaseEncoder(); StringEncoder diaRemover = new DiacriticEncoder(); StringEncoder punctRemover = new PunctEncoder(); StringEncoder simple0 = new SimplePhonetic0Encoder(); StringEncoder simple1 = new SimplePhonetic1Encoder(); StringEncoder simple2 = new SimplePhonetic2Encoder(); // not really language encodings // StringEncoder qcode = new QCodec(); // StringEncoder qpcode = new QuotedPrintableCodec(); // StringEncoder urlcode = new URLCodec(); algorithms.put("Beider-Morse-Exact", bmExact); algorithms.put("Beider-Morse-Approximate", bmApprox); // algorithms.put("CaverPhone", caver); algorithms.put("CaverPhone_1.0", caver1); algorithms.put("CaverPhone_2.0", caver2); algorithms.put("Cologne_Phonetic", colgne); algorithms.put("Double_Metaphone", doubleMeta); algorithms.put("Metaphone", meta); algorithms.put("Refined_Soundex", refinedSound); algorithms.put("Soundex", sound); algorithms.put("Nothing", noop); algorithms.put("Case_Insensitive", caser); algorithms.put("Diacritic_Insensitive", diaRemover); algorithms.put("Puncuation_Insensitive", punctRemover); algorithms.put("Simple_Phonetic0", simple0); algorithms.put("Simple_Phonetic1", simple1); algorithms.put("Simple_Phonetic2", simple2); // not really language encodings // algorithms.put("Q Code", qcode); // algorithms.put("Q Printable", qpcode); // algorithms.put("URL Code", urlcode); }
From source file:org.opensextant.phonetic.Phoneticizer.java
public Phoneticizer() { // populate the algorithms Map with an instance of each encoder // first the ones from Apache Commons BeiderMorseEncoder bmExact = new BeiderMorseEncoder(); bmExact.setRuleType(RuleType.EXACT); bmExact.setConcat(false);/*from w w w . ja v a 2s .co m*/ BeiderMorseEncoder bmApprox = new BeiderMorseEncoder(); bmApprox.setRuleType(RuleType.APPROX); bmApprox.setConcat(false); // StringEncoder caver = new Caverphone(); StringEncoder caver1 = new Caverphone1(); StringEncoder caver2 = new Caverphone2(); StringEncoder colgne = new ColognePhonetic(); DoubleMetaphone doubleMeta = new DoubleMetaphone(); doubleMeta.setMaxCodeLen(10); StringEncoder meta = new Metaphone(); StringEncoder refinedSound = new RefinedSoundex(); StringEncoder sound = new Soundex(); // now, the home-brewed ones StringEncoder noop = new NullEncoder(); StringEncoder caser = new CaseEncoder(); StringEncoder diaRemover = new DiacriticEncoder(); StringEncoder punctRemover = new PunctEncoder(); StringEncoder simple0 = new SimplePhonetic0Encoder(); StringEncoder simple0Solr = new SimplePhonetic0SolrEncoder(); StringEncoder simple0SolrPlus = new SimplePhonetic0SolrPlusEncoder(); StringEncoder simple1 = new SimplePhonetic1Encoder(); StringEncoder simple2 = new SimplePhonetic2Encoder(); // not really language encodings // StringEncoder qcode = new QCodec(); // StringEncoder qpcode = new QuotedPrintableCodec(); // StringEncoder urlcode = new URLCodec(); algorithms.put("Beider-Morse-Exact", bmExact); algorithms.put("Beider-Morse-Approximate", bmApprox); // algorithms.put("CaverPhone", caver); algorithms.put("CaverPhone_1.0", caver1); algorithms.put("CaverPhone_2.0", caver2); algorithms.put("Cologne_Phonetic", colgne); algorithms.put("Double_Metaphone", doubleMeta); algorithms.put("Metaphone", meta); algorithms.put("Refined_Soundex", refinedSound); algorithms.put("Soundex", sound); algorithms.put("Nothing", noop); algorithms.put("Case_Insensitive", caser); algorithms.put("Diacritic_Insensitive", diaRemover); algorithms.put("Puncuation_Insensitive", punctRemover); algorithms.put("Simple_Phonetic0", simple0); algorithms.put("Simple_Phonetic0Solr", simple0Solr); algorithms.put("Simple_Phonetic0SolrPlus", simple0SolrPlus); algorithms.put("Simple_Phonetic1", simple1); algorithms.put("Simple_Phonetic2", simple2); // not really language encodings // algorithms.put("Q Code", qcode); // algorithms.put("Q Printable", qpcode); // algorithms.put("URL Code", urlcode); }