Changes to Analyzers in 0.16.1

There seems to be a breaking change in 0.16.0. My configuration for a custom
analyzer looks like this:

index.analysis.analyzer.porter_standard.type=custom
index.analysis.analyzer.porter_standard.tokenizer=standard
index.analysis.analyzer.porter_standard.char_filter.0=html_strip
index.analysis.analyzer.porter_standard.filter.0=standard
index.analysis.analyzer.porter_standard.filter.1=lowercase
index.analysis.analyzer.porter_standard.filter.2=stop
index.analysis.analyzer.porter_standard.filter.3=porterStem

This works in 0.16.0, but fails in 0.16.1 with the following exception:

Caused by: java.lang.IllegalArgumentException: Custom Analyzer
[porter_standard] failed to find token filter under name [porterStem]
at
org.elasticsearch.index.analysis.CustomAnalyzerProvider.(CustomAnalyzerProvider.java:91)
at
org.elasticsearch.index.analysis.CustomAnalyzerProvider$$FastClassByGuice$$eba7fa23.newInstance()
at
org.elasticsearch.common.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
at
org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
at
org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
at
org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
at org.elasticsearch.common.inject.FactoryProxy.get(FactoryProxy.java:56)
at
org.elasticsearch.common.inject.InjectorImpl$4$1.call(InjectorImpl.java:758)
at
org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
at org.elasticsearch.common.inject.InjectorImpl$4.get(InjectorImpl.java:754)
at
org.elasticsearch.common.inject.assistedinject.FactoryProvider2.invoke(FactoryProvider2.java:218)

The docs seem to indicate that porterStem is still valid. Can someone point
out the change I need to make?

-- jim

Hey,

This looks like a regression, yes. Try using porter_stem instead, I will fix it later today.

-shay.banon
On Tuesday, May 17, 2011 at 5:10 AM, James Cook wrote:
There seems to be a breaking change in 0.16.0. My configuration for a custom analyzer looks like this:

index.analysis.analyzer.porter_standard.type=custom
index.analysis.analyzer.porter_standard.tokenizer=standard
index.analysis.analyzer.porter_standard.char_filter.0=html_strip
index.analysis.analyzer.porter_standard.filter.0=standard
index.analysis.analyzer.porter_standard.filter.1=lowercase
index.analysis.analyzer.porter_standard.filter.2=stop
index.analysis.analyzer.porter_standard.filter.3=porterStem

This works in 0.16.0, but fails in 0.16.1 with the following exception:

Caused by: java.lang.IllegalArgumentException: Custom Analyzer [porter_standard] failed to find token filter under name [porterStem]
at org.elasticsearch.index.analysis.CustomAnalyzerProvider.(CustomAnalyzerProvider.java:91)
at org.elasticsearch.index.analysis.CustomAnalyzerProvider$$FastClassByGuice$$eba7fa23.newInstance()
at org.elasticsearch.common.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
at org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
at org.elasticsearch.common.inject.FactoryProxy.get(FactoryProxy.java:56)
at org.elasticsearch.common.inject.InjectorImpl$4$1.call(InjectorImpl.java:758)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
at org.elasticsearch.common.inject.InjectorImpl$4.get(InjectorImpl.java:754)
at org.elasticsearch.common.inject.assistedinject.FactoryProvider2.invoke(FactoryProvider2.java:218)

The docs seem to indicate that porterStem is still valid. Can someone point out the change I need to make?

-- jim

ok, pushed a fix: Analysis: Regression (0.16.1), Camel cased filters / tokenizers failed to load in custom analyzer · Issue #937 · elastic/elasticsearch · GitHub, will be part of 0.16.2.
On Tuesday, May 17, 2011 at 8:18 AM, Shay Banon wrote:

Hey,

This looks like a regression, yes. Try using porter_stem instead, I will fix it later today.

-shay.banon
On Tuesday, May 17, 2011 at 5:10 AM, James Cook wrote:

There seems to be a breaking change in 0.16.0. My configuration for a custom analyzer looks like this:

index.analysis.analyzer.porter_standard.type=custom
index.analysis.analyzer.porter_standard.tokenizer=standard
index.analysis.analyzer.porter_standard.char_filter.0=html_strip
index.analysis.analyzer.porter_standard.filter.0=standard
index.analysis.analyzer.porter_standard.filter.1=lowercase
index.analysis.analyzer.porter_standard.filter.2=stop
index.analysis.analyzer.porter_standard.filter.3=porterStem

This works in 0.16.0, but fails in 0.16.1 with the following exception:

Caused by: java.lang.IllegalArgumentException: Custom Analyzer [porter_standard] failed to find token filter under name [porterStem]
at org.elasticsearch.index.analysis.CustomAnalyzerProvider.(CustomAnalyzerProvider.java:91)
at org.elasticsearch.index.analysis.CustomAnalyzerProvider$$FastClassByGuice$$eba7fa23.newInstance()
at org.elasticsearch.common.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
at org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
at org.elasticsearch.common.inject.FactoryProxy.get(FactoryProxy.java:56)
at org.elasticsearch.common.inject.InjectorImpl$4$1.call(InjectorImpl.java:758)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
at org.elasticsearch.common.inject.InjectorImpl$4.get(InjectorImpl.java:754)
at org.elasticsearch.common.inject.assistedinject.FactoryProvider2.invoke(FactoryProvider2.java:218)

The docs seem to indicate that porterStem is still valid. Can someone point out the change I need to make?

-- jim