You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Nathan Castelein <na...@gmail.com> on 2011/12/01 10:14:25 UTC

Problem with hunspell french dictionary

Hi,

I'm trying to add the HunspellStemFilterFactory to my Solr project.

I'm trying this on a fresh new download of Solr 3.5.

I downloaded french dictionary here (found it from here
<http://wiki.services.openoffice.org/wiki/Dictionaries#French_.28France.2C_....29>):
http://www.dicollecte.org/download/fr/hunspell-fr-moderne-v4.3.zip

But when I start Solr and go to the Solr Analysis, an error occurs in Solr.

Is there the trace :

java.lang.RuntimeException: Unable to load hunspell data!
[dictionary=en_GB.dic,affix=fr-moderne.aff]
	at org.apache.solr.analysis.HunspellStemFilterFactory.inform(HunspellStemFilterFactory.java:82)
	at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:546)
	at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:126)
	at org.apache.solr.core.CoreContainer.create(CoreContainer.java:461)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
	at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
	at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
	at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:224)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.mortbay.start.Main.invokeMain(Main.java:194)
	at org.mortbay.start.Main.start(Main.java:534)
	at org.mortbay.start.Main.start(Main.java:441)
	at org.mortbay.start.Main.main(Main.java:119)

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
range: 3 at java.lang.String.charAt(Unknown Source) at
org.apache.lucene.analysis.hunspell.HunspellDictionary$DoubleASCIIFlagParsingStrategy.parseFlags(HunspellDictionary.java:382)
at
org.apache.lucene.analysis.hunspell.HunspellDictionary.parseAffix(HunspellDictionary.java:165)
at
org.apache.lucene.analysis.hunspell.HunspellDictionary.readAffixFile(HunspellDictionary.java:121)
at
org.apache.lucene.analysis.hunspell.HunspellDictionary.<init>(HunspellDictionary.java:64)
at
org.apache.solr.analysis.HunspellStemFilterFactory.inform(HunspellStemFilterFactory.java:46)
I can't find where the problem is. It seems like my dictionary isn't well
written for hunspell, but I tried with two different dictionaries, and I
had the same problem.

I also tried with an english dictionary, and ... it works !

So I think that my french dictionary is wrong for hunspell, but I
don't know why ...

Can you help me ?

Re: Problem with hunspell french dictionary

Posted by Chris Male <ge...@gmail.com>.
There seems that theres a problem with the code parsing the Dictionary.
 Can you open a JIRA issue with the same information so we can look into
fixing it?

On Thu, Dec 1, 2011 at 10:14 PM, Nathan Castelein <
nathan.castelein@gmail.com> wrote:

> Hi,
>
> I'm trying to add the HunspellStemFilterFactory to my Solr project.
>
> I'm trying this on a fresh new download of Solr 3.5.
>
> I downloaded french dictionary here (found it from here
> <
> http://wiki.services.openoffice.org/wiki/Dictionaries#French_.28France.2C_....29
> >):
> http://www.dicollecte.org/download/fr/hunspell-fr-moderne-v4.3.zip
>
> But when I start Solr and go to the Solr Analysis, an error occurs in Solr.
>
> Is there the trace :
>
> java.lang.RuntimeException: Unable to load hunspell data!
> [dictionary=en_GB.dic,affix=fr-moderne.aff]
>        at
> org.apache.solr.analysis.HunspellStemFilterFactory.inform(HunspellStemFilterFactory.java:82)
>        at
> org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:546)
>        at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:126)
>        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:461)
>        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
>        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
>        at
> org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
>        at
> org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
>        at
> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
>        at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>        at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
>        at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
>        at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
>        at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
>        at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
>        at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>        at
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>        at
> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
>        at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>        at
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>        at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>        at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
>        at org.mortbay.jetty.Server.doStart(Server.java:224)
>        at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>        at java.lang.reflect.Method.invoke(Unknown Source)
>        at org.mortbay.start.Main.invokeMain(Main.java:194)
>        at org.mortbay.start.Main.start(Main.java:534)
>        at org.mortbay.start.Main.start(Main.java:441)
>        at org.mortbay.start.Main.main(Main.java:119)
>
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
> range: 3 at java.lang.String.charAt(Unknown Source) at
>
> org.apache.lucene.analysis.hunspell.HunspellDictionary$DoubleASCIIFlagParsingStrategy.parseFlags(HunspellDictionary.java:382)
> at
>
> org.apache.lucene.analysis.hunspell.HunspellDictionary.parseAffix(HunspellDictionary.java:165)
> at
>
> org.apache.lucene.analysis.hunspell.HunspellDictionary.readAffixFile(HunspellDictionary.java:121)
> at
>
> org.apache.lucene.analysis.hunspell.HunspellDictionary.<init>(HunspellDictionary.java:64)
> at
>
> org.apache.solr.analysis.HunspellStemFilterFactory.inform(HunspellStemFilterFactory.java:46)
> I can't find where the problem is. It seems like my dictionary isn't well
> written for hunspell, but I tried with two different dictionaries, and I
> had the same problem.
>
> I also tried with an english dictionary, and ... it works !
>
> So I think that my french dictionary is wrong for hunspell, but I
> don't know why ...
>
> Can you help me ?
>



-- 
Chris Male | Software Developer | DutchWorks | www.dutchworks.nl