From 8beac01933b5121187d1cf6dd97cef0b34d1afd2 Mon Sep 17 00:00:00 2001 From: Dainius Jocas Date: Thu, 14 Sep 2023 18:14:57 +0300 Subject: LuceneLinguistics optional configDir --- .../main/java/com/yahoo/language/lucene/AnalyzerFactory.java | 10 +++++----- .../src/main/resources/configdefinitions/lucene-analysis.def | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'lucene-linguistics/src/main') diff --git a/lucene-linguistics/src/main/java/com/yahoo/language/lucene/AnalyzerFactory.java b/lucene-linguistics/src/main/java/com/yahoo/language/lucene/AnalyzerFactory.java index 71e31de34b3..67a430a28dc 100644 --- a/lucene-linguistics/src/main/java/com/yahoo/language/lucene/AnalyzerFactory.java +++ b/lucene-linguistics/src/main/java/com/yahoo/language/lucene/AnalyzerFactory.java @@ -28,9 +28,6 @@ class AnalyzerFactory { private final LuceneAnalysisConfig config; - // Root config directory for all analysis components - private final Path configDir; - // Registry of analyzers per language // The idea is to create analyzers ONLY WHEN they are needed // Analyzers are thread safe so no need to recreate them for every document @@ -45,7 +42,6 @@ class AnalyzerFactory { public AnalyzerFactory(LuceneAnalysisConfig config, ComponentRegistry analyzers) { this.config = config; - this.configDir = config.configDir(); this.analyzerComponents = analyzers; this.defaultAnalyzers = new DefaultAnalyzers(); log.config("Available in classpath char filters: " + CharFilterFactory.availableCharFilters()); @@ -83,7 +79,11 @@ class AnalyzerFactory { private Analyzer createAnalyzer(AnalyzerKey analyzerKey, LuceneAnalysisConfig.Analysis analysis) { try { - CustomAnalyzer.Builder builder = CustomAnalyzer.builder(configDir); + CustomAnalyzer.Builder builder = config.configDir() + // Root config directory for all analysis components in the application package + .map(CustomAnalyzer::builder) + // else load resource files from the classpath + .orElseGet(CustomAnalyzer::builder); builder = withTokenizer(builder, analysis); builder = addCharFilters(builder, analysis); builder = addTokenFilters(builder, analysis); diff --git a/lucene-linguistics/src/main/resources/configdefinitions/lucene-analysis.def b/lucene-linguistics/src/main/resources/configdefinitions/lucene-analysis.def index e4b5037dcbe..081d93ec580 100644 --- a/lucene-linguistics/src/main/resources/configdefinitions/lucene-analysis.def +++ b/lucene-linguistics/src/main/resources/configdefinitions/lucene-analysis.def @@ -4,7 +4,7 @@ package=com.yahoo.language.lucene # See # - https://docs.vespa.ai/en/reference/config-files.html -configDir path +configDir path optional analysis{}.tokenizer.name string default=standard analysis{}.tokenizer.conf{} string -- cgit v1.2.3