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 Edwin Steiner <ed...@gmail.com> on 2011/11/04 17:00:48 UTC
InvalidTokenOffsetsException when using MappingCharFilterFactory, DictionaryCompoundWordTokenFilterFactory and Highlighting
Hello all
I would like to handle german accents (Umlaute) by replacing the accented char with its two-letter substitute (e.g ä => ae). For this reason I use the char-filter solr.MappingCharFilterFactory configured with a mapping file containing entries like “ä” => “ae”. I also want to use the solr.DictionaryCompoundWordTokenFilterFactory to find words which are part of compound words (e.g. revision in totalrevision). And finally I want to use Solr highlighting. But there seems to be a problem if I combine the char filter and the compound word filter in combination with highlighting (an org.apache.lucene.search.highlight.InvalidTokenOffsetsException is raised).
Here are the details:
types:
--------
<fieldType name="textAnalyzedFailed" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping.txt"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.DictionaryCompoundWordTokenFilterFactory" dictionary=“words.txt”/>
</analyzer>
</fieldType>
schema:
-----------
<fields>
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="title" type="textAnalyzedFailed" indexed="true" stored="true"/>
</fields>
document:
--------------
<doc>
<field name="id">1</field>
<field name="title">banküberfall</field>
</doc>
mapping.txt:
-----------------
"ü" => "ue"
words.txt:
--------------
fall
The resulting error when search with:
http://localhost:8080/solr/select/?q=banküberfall&hl=true&hl.fl=title
Nov 4, 2011 4:29:12 PM org.apache.solr.core.SolrCore execute
INFO: [] webapp=/solr path=/select/ params={q=bank?berfall&hl.fl=title_hl&hl=true} hits=1 status=0 QTime=13
Nov 4, 2011 4:29:16 PM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall exceeds length of provided text sized 12
at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:469)
at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:378)
at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:116)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall exceeds length of provided text sized 12
at org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:228)
at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:462)
... 23 more
Thanks a lot for any suggestions and best regards,
Edwin
Re: InvalidTokenOffsetsException when using MappingCharFilterFactory,
DictionaryCompoundWordTokenFilterFactory and Highlighting
Posted by Jay Luker <lb...@reallywow.com>.
I am having a similar issue with OffsetExceptions during highlighting.
In all of the explanations and bug reports I'm reading there is a
mention this is all the result of a problem with HTMLStripCharFilter.
But my analysis chains don't (that I'm aware of) make use of
HTMLStripCharFilter, so can someone explain what else might be going
on? Or is it acknowledged that the bug may exist elsewhere?
Thanks,
--jay
On Fri, Nov 11, 2011 at 4:37 AM, Vadim Kisselmann
<v....@googlemail.com> wrote:
> Hi Edwin, Chris
>
> it´s an old bug. I have big problems too with OffsetExceptions when i use
> Highlighting, or Carrot.
> It looks like a problem with HTMLStripCharFilter.
> Patch doesn´t work.
>
> https://issues.apache.org/jira/browse/LUCENE-2208
>
> Regards
> Vadim
>
>
>
> 2011/11/11 Edwin Steiner <ed...@gmail.com>
>
>> I just entered a bug: https://issues.apache.org/jira/browse/SOLR-2891
>>
>> Thanks & regards, Edwin
>>
>> On Nov 7, 2011, at 8:47 PM, Chris Hostetter wrote:
>>
>> >
>> > : finally I want to use Solr highlighting. But there seems to be a
>> problem
>> > : if I combine the char filter and the compound word filter in
>> combination
>> > : with highlighting (an
>> > : org.apache.lucene.search.highlight.InvalidTokenOffsetsException is
>> > : raised).
>> >
>> > Definitely sounds like a bug somwhere in dealing with the offsets.
>> >
>> > can you please file a Jira, and include all of the data you have provided
>> > here? it would also be helpful to know what the analysis tool says about
>> > the various attributes of your tokens at each stage of the analysis?
>> >
>> > : SEVERE: org.apache.solr.common.SolrException:
>> org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall
>> exceeds length of provided text sized 12
>> > : at
>> org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:469)
>> > : at
>> org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:378)
>> > : at
>> org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:116)
>> > : at
>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194)
>> > : at
>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
>> > : at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
>> > : at
>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
>> > : at
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
>> > : at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> > : at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> > : at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>> > : at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>> > : at
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>> > : at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>> > : at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>> > : at
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
>> > : at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>> > : at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>> > : at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
>> > : at
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
>> > : at
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
>> > : at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> > : at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> > : at java.lang.Thread.run(Thread.java:680)
>> > : Caused by:
>> org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall
>> exceeds length of provided text sized 12
>> > : at
>> org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:228)
>> > : at
>> org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:462)
>> > : ... 23 more
>> >
>> >
>> > -Hoss
>>
>>
>
Re: InvalidTokenOffsetsException when using MappingCharFilterFactory,
DictionaryCompoundWordTokenFilterFactory and Highlighting
Posted by Vadim Kisselmann <v....@googlemail.com>.
Hi Edwin, Chris
it´s an old bug. I have big problems too with OffsetExceptions when i use
Highlighting, or Carrot.
It looks like a problem with HTMLStripCharFilter.
Patch doesn´t work.
https://issues.apache.org/jira/browse/LUCENE-2208
Regards
Vadim
2011/11/11 Edwin Steiner <ed...@gmail.com>
> I just entered a bug: https://issues.apache.org/jira/browse/SOLR-2891
>
> Thanks & regards, Edwin
>
> On Nov 7, 2011, at 8:47 PM, Chris Hostetter wrote:
>
> >
> > : finally I want to use Solr highlighting. But there seems to be a
> problem
> > : if I combine the char filter and the compound word filter in
> combination
> > : with highlighting (an
> > : org.apache.lucene.search.highlight.InvalidTokenOffsetsException is
> > : raised).
> >
> > Definitely sounds like a bug somwhere in dealing with the offsets.
> >
> > can you please file a Jira, and include all of the data you have provided
> > here? it would also be helpful to know what the analysis tool says about
> > the various attributes of your tokens at each stage of the analysis?
> >
> > : SEVERE: org.apache.solr.common.SolrException:
> org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall
> exceeds length of provided text sized 12
> > : at
> org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:469)
> > : at
> org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:378)
> > : at
> org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:116)
> > : at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194)
> > : at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
> > : at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
> > : at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
> > : at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
> > : at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> > : at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> > : at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> > : at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> > : at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
> > : at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
> > : at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> > : at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
> > : at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> > : at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> > : at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
> > : at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> > : at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
> > : at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> > : at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> > : at java.lang.Thread.run(Thread.java:680)
> > : Caused by:
> org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall
> exceeds length of provided text sized 12
> > : at
> org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:228)
> > : at
> org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:462)
> > : ... 23 more
> >
> >
> > -Hoss
>
>
Re: InvalidTokenOffsetsException when using MappingCharFilterFactory, DictionaryCompoundWordTokenFilterFactory and Highlighting
Posted by Edwin Steiner <ed...@gmail.com>.
I just entered a bug: https://issues.apache.org/jira/browse/SOLR-2891
Thanks & regards, Edwin
On Nov 7, 2011, at 8:47 PM, Chris Hostetter wrote:
>
> : finally I want to use Solr highlighting. But there seems to be a problem
> : if I combine the char filter and the compound word filter in combination
> : with highlighting (an
> : org.apache.lucene.search.highlight.InvalidTokenOffsetsException is
> : raised).
>
> Definitely sounds like a bug somwhere in dealing with the offsets.
>
> can you please file a Jira, and include all of the data you have provided
> here? it would also be helpful to know what the analysis tool says about
> the various attributes of your tokens at each stage of the analysis?
>
> : SEVERE: org.apache.solr.common.SolrException: org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall exceeds length of provided text sized 12
> : at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:469)
> : at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:378)
> : at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:116)
> : at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194)
> : at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
> : at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
> : at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
> : at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
> : at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> : at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> : at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> : at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> : at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
> : at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
> : at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> : at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
> : at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> : at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> : at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
> : at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> : at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
> : at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> : at java.lang.Thread.run(Thread.java:680)
> : Caused by: org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall exceeds length of provided text sized 12
> : at org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:228)
> : at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:462)
> : ... 23 more
>
>
> -Hoss
Re: InvalidTokenOffsetsException when using MappingCharFilterFactory,
DictionaryCompoundWordTokenFilterFactory and Highlighting
Posted by Chris Hostetter <ho...@fucit.org>.
: finally I want to use Solr highlighting. But there seems to be a problem
: if I combine the char filter and the compound word filter in combination
: with highlighting (an
: org.apache.lucene.search.highlight.InvalidTokenOffsetsException is
: raised).
Definitely sounds like a bug somwhere in dealing with the offsets.
can you please file a Jira, and include all of the data you have provided
here? it would also be helpful to know what the analysis tool says about
the various attributes of your tokens at each stage of the analysis?
: SEVERE: org.apache.solr.common.SolrException: org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall exceeds length of provided text sized 12
: at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:469)
: at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:378)
: at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:116)
: at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194)
: at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
: at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
: at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
: at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
: at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
: at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:278)
: at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
: at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
: at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
: at java.lang.Thread.run(Thread.java:680)
: Caused by: org.apache.lucene.search.highlight.InvalidTokenOffsetsException: Token fall exceeds length of provided text sized 12
: at org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:228)
: at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:462)
: ... 23 more
-Hoss