/** * */ package de.bstly.board; import org.apache.lucene.analysis.core.LowerCaseFilterFactory; import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory; import org.apache.lucene.analysis.ngram.EdgeNGramFilterFactory; import org.apache.lucene.analysis.snowball.SnowballPorterFilterFactory; import org.apache.lucene.analysis.standard.StandardTokenizerFactory; import org.hibernate.search.backend.lucene.analysis.LuceneAnalysisConfigurationContext; import org.hibernate.search.backend.lucene.analysis.LuceneAnalysisConfigurer; import org.springframework.context.annotation.Configuration; /** * The Class LuceneConfig. */ @Configuration public class LuceneConfig implements LuceneAnalysisConfigurer { /* * @see org.hibernate.search.backend.lucene.analysis.LuceneAnalysisConfigurer# * configure(org.hibernate.search.backend.lucene.analysis. * LuceneAnalysisConfigurationContext) */ @Override public void configure(LuceneAnalysisConfigurationContext context) { context.analyzer("english").custom().tokenizer(StandardTokenizerFactory.class) .tokenFilter(LowerCaseFilterFactory.class).tokenFilter(SnowballPorterFilterFactory.class) .param("language", "English").tokenFilter(ASCIIFoldingFilterFactory.class) .tokenFilter(EdgeNGramFilterFactory.class).param("minGramSize", "3").param("maxGramSize", "7"); context.analyzer("english_search").custom().tokenizer(StandardTokenizerFactory.class) .tokenFilter(LowerCaseFilterFactory.class).tokenFilter(SnowballPorterFilterFactory.class) .param("language", "English").tokenFilter(ASCIIFoldingFilterFactory.class); context.analyzer("german").custom().tokenizer(StandardTokenizerFactory.class) .tokenFilter(LowerCaseFilterFactory.class).tokenFilter(SnowballPorterFilterFactory.class) .param("language", "German").tokenFilter(ASCIIFoldingFilterFactory.class) .tokenFilter(EdgeNGramFilterFactory.class).param("minGramSize", "3").param("maxGramSize", "7"); context.analyzer("german_search").custom().tokenizer(StandardTokenizerFactory.class) .tokenFilter(LowerCaseFilterFactory.class).tokenFilter(SnowballPorterFilterFactory.class) .param("language", "German").tokenFilter(ASCIIFoldingFilterFactory.class); } }