List of usage examples for org.apache.lucene.analysis MockTokenizer MockTokenizer
public MockTokenizer(AttributeFactory factory)
From source file:org.elasticsearch.index.analysis.NGramTokenizerFactoryTests.java
License:Apache License
@Test public void testBackwardsCompatibilityEdgeNgramTokenFilter() throws IllegalArgumentException, IllegalAccessException { int iters = atLeast(20); for (int i = 0; i < iters; i++) { final Index index = new Index("test"); final String name = "ngr"; Version v = randomVersion(random()); if (v.onOrAfter(Version.V_0_90_2)) { Builder builder = ImmutableSettings.builder().put("min_gram", 2).put("max_gram", 3); boolean compatVersion = false; if ((compatVersion = random().nextBoolean())) { builder.put("version", "4." + random().nextInt(3)); }//from www . j a va 2 s . c o m boolean reverse = random().nextBoolean(); if (reverse) { builder.put("side", "back"); } Settings settings = builder.build(); Settings indexSettings = ImmutableSettings.builder() .put(IndexMetaData.SETTING_VERSION_CREATED, v.id).build(); TokenStream edgeNGramTokenFilter = new EdgeNGramTokenFilterFactory(index, indexSettings, name, settings).create(new MockTokenizer(new StringReader("foo bar"))); if (compatVersion) { assertThat(edgeNGramTokenFilter, instanceOf(EdgeNGramTokenFilter.class)); } else if (reverse && !compatVersion) { assertThat(edgeNGramTokenFilter, instanceOf(ReverseStringFilter.class)); } else { assertThat(edgeNGramTokenFilter, instanceOf(EdgeNGramTokenFilter.class)); } } else { Builder builder = ImmutableSettings.builder().put("min_gram", 2).put("max_gram", 3); boolean reverse = random().nextBoolean(); if (reverse) { builder.put("side", "back"); } Settings settings = builder.build(); Settings indexSettings = ImmutableSettings.builder() .put(IndexMetaData.SETTING_VERSION_CREATED, v.id).build(); TokenStream edgeNGramTokenFilter = new EdgeNGramTokenFilterFactory(index, indexSettings, name, settings).create(new MockTokenizer(new StringReader("foo bar"))); assertThat(edgeNGramTokenFilter, instanceOf(EdgeNGramTokenFilter.class)); } } }