bstlboard-back/src/main/java/de/bstly/board/LuceneConfig.java

56 lines
2.2 KiB
Java
Raw Normal View History

2021-12-04 10:57:16 +01:00
/**
*
*/
package de.bstly.board;
import org.apache.lucene.analysis.core.LowerCaseFilterFactory;
import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory;
2021-12-04 15:33:51 +01:00
import org.apache.lucene.analysis.ngram.EdgeNGramFilterFactory;
2021-12-04 10:57:16 +01:00
import org.apache.lucene.analysis.snowball.SnowballPorterFilterFactory;
2021-12-04 11:05:37 +01:00
import org.apache.lucene.analysis.standard.StandardTokenizerFactory;
2021-12-04 10:57:16 +01:00
import org.hibernate.search.backend.lucene.analysis.LuceneAnalysisConfigurationContext;
import org.hibernate.search.backend.lucene.analysis.LuceneAnalysisConfigurer;
import org.springframework.context.annotation.Configuration;
/**
* @author _bastler@bstly.de
*
*/
@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) {
2021-12-04 11:05:37 +01:00
context.analyzer("english").custom().tokenizer(StandardTokenizerFactory.class)
2021-12-04 15:33:51 +01:00
.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)
2021-12-04 10:57:16 +01:00
.tokenFilter(LowerCaseFilterFactory.class)
.tokenFilter(SnowballPorterFilterFactory.class).param("language", "English")
2021-12-04 11:03:52 +01:00
.tokenFilter(ASCIIFoldingFilterFactory.class);
2021-12-04 10:57:16 +01:00
2021-12-04 11:05:37 +01:00
context.analyzer("german").custom().tokenizer(StandardTokenizerFactory.class)
2021-12-04 15:33:51 +01:00
.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)
2021-12-04 10:57:16 +01:00
.tokenFilter(LowerCaseFilterFactory.class)
.tokenFilter(SnowballPorterFilterFactory.class).param("language", "German")
2021-12-04 11:03:52 +01:00
.tokenFilter(ASCIIFoldingFilterFactory.class);
2021-12-04 10:57:16 +01:00
}
}