Changes to Analyzers in 0.16.1


(James Cook) #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


(Shay Banon) #2

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


(Shay Banon) #3

ok, pushed a fix: https://github.com/elasticsearch/elasticsearch/issues/937, 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


(system) #4