summaryrefslogtreecommitdiff
path: root/plugins/analysis-stempel
diff options
context:
space:
mode:
authorNik Everett <nik9000@gmail.com>2016-06-24 16:37:23 -0400
committerNik Everett <nik9000@gmail.com>2016-06-26 07:15:42 -0400
commit71b95fb63c31ad40ad18e1730b277d3d5b007b95 (patch)
tree720c2b1be47e2d538b9130003c6c6b695661818a /plugins/analysis-stempel
parentc79e27180ea14bd536d39e50d310a0345369d7c3 (diff)
Switch analysis from push to pull
Instead of plugins calling `registerTokenizer` to extend the analyzer they now instead have to implement `AnalysisPlugin` and override `getTokenizer`. This lines up extending plugins in with extending scripts. This allows `AnalysisModule` to construct the `AnalysisRegistry` immediately as part of its constructor which makes testing anslysis much simpler. This also moves the default analysis configuration into `AnalysisModule` which is how search is setup. Like `ScriptModule`, `AnalysisModule` no longer extends `AbstractModule`. Instead it is only responsible for building `AnslysisRegistry`. We still bind `AnalysisRegistry` but we only do so in `Node`. This is means it is available at module construction time so we slowly remove the need to bind it in guice.
Diffstat (limited to 'plugins/analysis-stempel')
-rw-r--r--plugins/analysis-stempel/src/main/java/org/elasticsearch/plugin/analysis/stempel/AnalysisStempelPlugin.java22
-rw-r--r--plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/PolishAnalysisTests.java3
-rw-r--r--plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/SimplePolishTokenFilterTests.java5
3 files changed, 21 insertions, 9 deletions
diff --git a/plugins/analysis-stempel/src/main/java/org/elasticsearch/plugin/analysis/stempel/AnalysisStempelPlugin.java b/plugins/analysis-stempel/src/main/java/org/elasticsearch/plugin/analysis/stempel/AnalysisStempelPlugin.java
index 8549795f4b..98dd9634fb 100644
--- a/plugins/analysis-stempel/src/main/java/org/elasticsearch/plugin/analysis/stempel/AnalysisStempelPlugin.java
+++ b/plugins/analysis-stempel/src/main/java/org/elasticsearch/plugin/analysis/stempel/AnalysisStempelPlugin.java
@@ -19,15 +19,27 @@
package org.elasticsearch.plugin.analysis.stempel;
+import org.apache.lucene.analysis.Analyzer;
+import org.elasticsearch.index.analysis.AnalyzerProvider;
+import org.elasticsearch.index.analysis.TokenFilterFactory;
import org.elasticsearch.index.analysis.pl.PolishAnalyzerProvider;
import org.elasticsearch.index.analysis.pl.PolishStemTokenFilterFactory;
-import org.elasticsearch.indices.analysis.AnalysisModule;
+import org.elasticsearch.indices.analysis.AnalysisModule.AnalysisProvider;
+import org.elasticsearch.plugins.AnalysisPlugin;
import org.elasticsearch.plugins.Plugin;
-public class AnalysisStempelPlugin extends Plugin {
+import java.util.Map;
- public void onModule(AnalysisModule module) {
- module.registerAnalyzer("polish", PolishAnalyzerProvider::new);
- module.registerTokenFilter("polish_stem", PolishStemTokenFilterFactory::new);
+import static java.util.Collections.singletonMap;
+
+public class AnalysisStempelPlugin extends Plugin implements AnalysisPlugin {
+ @Override
+ public Map<String, AnalysisProvider<TokenFilterFactory>> getTokenFilters() {
+ return singletonMap("polish_stem", PolishStemTokenFilterFactory::new);
+ }
+
+ @Override
+ public Map<String, AnalysisProvider<AnalyzerProvider<? extends Analyzer>>> getAnalyzers() {
+ return singletonMap("polish", PolishAnalyzerProvider::new);
}
}
diff --git a/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/PolishAnalysisTests.java b/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/PolishAnalysisTests.java
index 9bfcc2c2f3..4f7ee642eb 100644
--- a/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/PolishAnalysisTests.java
+++ b/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/PolishAnalysisTests.java
@@ -36,7 +36,8 @@ import static org.hamcrest.Matchers.instanceOf;
*/
public class PolishAnalysisTests extends ESTestCase {
public void testDefaultsPolishAnalysis() throws IOException {
- final AnalysisService analysisService = createAnalysisService(new Index("test", "_na_"), Settings.EMPTY, new AnalysisStempelPlugin()::onModule);
+ final AnalysisService analysisService = createAnalysisService(new Index("test", "_na_"), Settings.EMPTY,
+ new AnalysisStempelPlugin());
TokenFilterFactory tokenizerFactory = analysisService.tokenFilter("polish_stem");
MatcherAssert.assertThat(tokenizerFactory, instanceOf(PolishStemTokenFilterFactory.class));
diff --git a/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/SimplePolishTokenFilterTests.java b/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/SimplePolishTokenFilterTests.java
index 9458b6920c..3fc12ccdfe 100644
--- a/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/SimplePolishTokenFilterTests.java
+++ b/plugins/analysis-stempel/src/test/java/org/elasticsearch/index/analysis/SimplePolishTokenFilterTests.java
@@ -49,7 +49,7 @@ public class SimplePolishTokenFilterTests extends ESTestCase {
Settings settings = Settings.builder()
.put("index.analysis.filter.myStemmer.type", "polish_stem")
.build();
- AnalysisService analysisService = createAnalysisService(index, settings, new AnalysisStempelPlugin()::onModule);
+ AnalysisService analysisService = createAnalysisService(index, settings, new AnalysisStempelPlugin());
TokenFilterFactory filterFactory = analysisService.tokenFilter("myStemmer");
@@ -65,8 +65,7 @@ public class SimplePolishTokenFilterTests extends ESTestCase {
}
private void testAnalyzer(String source, String... expected_terms) throws IOException {
- AnalysisService analysisService = createAnalysisService(new Index("test", "_na_"), Settings.EMPTY,
- new AnalysisStempelPlugin()::onModule);
+ AnalysisService analysisService = createAnalysisService(new Index("test", "_na_"), Settings.EMPTY, new AnalysisStempelPlugin());
Analyzer analyzer = analysisService.analyzer("polish").analyzer();