[jira] [Updated] (SOLR-7304) Spellcheck.collate Sometimes Invalidates Range Queries

2015-12-04 Thread James Dyer (JIRA)

 [ 
https://issues.apache.org/jira/browse/SOLR-7304?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Dyer updated SOLR-7304:
-
Attachment: SOLR-7304.patch

Here is a patch with the fix.  I will commit this next week if everything 
checks out ok.

> Spellcheck.collate Sometimes Invalidates Range Queries
> --
>
> Key: SOLR-7304
> URL: https://issues.apache.org/jira/browse/SOLR-7304
> Project: Solr
>  Issue Type: Bug
>  Components: spellchecker
>Affects Versions: 4.9
> Environment: Jetty
> Debian
>Reporter: Hakim
>Priority: Minor
>  Labels: range, spellchecker
> Fix For: 4.9
>
> Attachments: SOLR-7304.patch, SOLR-7304.patch
>
>
> I have an error with SpellCheckComponent since I have added this 
> SearchComponent to /select RequestHandler (see solrconfig.xml).
>   
> 
>  
>explicit
>10
>titre
> 
>on
>default
>true
>3
>3
>5
>true
>true
>10
>1
>false
>false
>  
> The error seems to be related to range queries, with the [.. to ..] written 
> in lowercase. The query performed by the SpellCheck component using 'to' in 
> lower case throws the RANGE_GOOP error.
> 101615 [qtp2145626092-38] WARN  org.apache.solr.spelling.SpellCheckCollator  
> - Exception trying to re-query to check if a spell check possibility would 
> return any hits.
> org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: 
> Cannot parse 'offredemande:offre AND categorieparente:"audi" AND 
> prix:[216 to 2250008} AND anneemodele:[2003 to 2008} AND etat:"nauf"': 
> Encountered "  "2250008 "" at line 1, column 68.
> Was expecting one of:
> "]" ...
> "}" ...
> at 
> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:205)
> at 
> org.apache.solr.spelling.SpellCheckCollator.collate(SpellCheckCollator.java:141)
> at 
> org.apache.solr.handler.component.SpellCheckComponent.addCollationsToResponse(SpellCheckComponent.java:230)
> at 
> org.apache.solr.handler.component.SpellCheckComponent.process(SpellCheckComponent.java:197)
> at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:218)
> at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1962)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
> at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1645)
> at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:564)
> at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
> at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
> at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:)
> at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:498)
> at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
> at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
> at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:199)
> at 
> org.eclipse.jetty.server.handler.IPAccessHandler.handle(IPAccessHandler.java:220)
> at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)
> at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:98)
> at org.eclipse.jetty.server.Server.handle(Server.java:461)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:284)
> at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
> at 
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
> at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
> at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.solr.search.SyntaxError: Cannot parse 
> 'offredemande:offre AND 

[jira] [Updated] (SOLR-7304) Spellcheck.collate Sometimes Invalidates Range Queries

2015-12-04 Thread James Dyer (JIRA)

 [ 
https://issues.apache.org/jira/browse/SOLR-7304?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Dyer updated SOLR-7304:
-
Attachment: SOLR-7304.patch

Attached is a patch with a failing unit test.  To reproduce this issue we use 
"spellcheck.alternativeTermCount" while having the word "to" in the index.  We 
also use a "queryAnalyzerFieldType" that performs lowercasing.

The test case queries:
bq. id:[1 TO 10] AND lowerfilt:lovw
And expects back:
bq. id:[1 TO 10] AND lowerfilt:love
But instead gets:
id:[1 to 10] AND lowerfilt:love

Both "to" and "and" are in the index.  However, SpellingQueryConverter treats 
the boolean AND/OR/NOT operators special.  I think the easiest fix here is to 
have S.Q.C. also treat "TO" special, at least in cases where it occurs somewhat 
after [ or { and somewhat before ] or }.


> Spellcheck.collate Sometimes Invalidates Range Queries
> --
>
> Key: SOLR-7304
> URL: https://issues.apache.org/jira/browse/SOLR-7304
> Project: Solr
>  Issue Type: Bug
>  Components: spellchecker
>Affects Versions: 4.9
> Environment: Jetty
> Debian
>Reporter: Hakim
>Priority: Minor
>  Labels: range, spellchecker
> Fix For: 4.9
>
> Attachments: SOLR-7304.patch
>
>
> I have an error with SpellCheckComponent since I have added this 
> SearchComponent to /select RequestHandler (see solrconfig.xml).
>   
> 
>  
>explicit
>10
>titre
> 
>on
>default
>true
>3
>3
>5
>true
>true
>10
>1
>false
>false
>  
> The error seems to be related to range queries, with the [.. to ..] written 
> in lowercase. The query performed by the SpellCheck component using 'to' in 
> lower case throws the RANGE_GOOP error.
> 101615 [qtp2145626092-38] WARN  org.apache.solr.spelling.SpellCheckCollator  
> - Exception trying to re-query to check if a spell check possibility would 
> return any hits.
> org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: 
> Cannot parse 'offredemande:offre AND categorieparente:"audi" AND 
> prix:[216 to 2250008} AND anneemodele:[2003 to 2008} AND etat:"nauf"': 
> Encountered "  "2250008 "" at line 1, column 68.
> Was expecting one of:
> "]" ...
> "}" ...
> at 
> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:205)
> at 
> org.apache.solr.spelling.SpellCheckCollator.collate(SpellCheckCollator.java:141)
> at 
> org.apache.solr.handler.component.SpellCheckComponent.addCollationsToResponse(SpellCheckComponent.java:230)
> at 
> org.apache.solr.handler.component.SpellCheckComponent.process(SpellCheckComponent.java:197)
> at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:218)
> at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1962)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
> at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1645)
> at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:564)
> at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
> at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
> at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:)
> at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:498)
> at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
> at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
> at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:199)
> at 
> org.eclipse.jetty.server.handler.IPAccessHandler.handle(IPAccessHandler.java:220)
> at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)
> at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:98)
> at org.eclipse.jetty.server.Server.handle(Server.java:461)
> at 

[jira] [Updated] (SOLR-7304) Spellcheck.collate Sometimes Invalidates Range Queries

2015-12-04 Thread James Dyer (JIRA)

 [ 
https://issues.apache.org/jira/browse/SOLR-7304?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Dyer updated SOLR-7304:
-
Summary: Spellcheck.collate Sometimes Invalidates Range Queries  (was: 
SyntaxError in SpellcheckComponent)

> Spellcheck.collate Sometimes Invalidates Range Queries
> --
>
> Key: SOLR-7304
> URL: https://issues.apache.org/jira/browse/SOLR-7304
> Project: Solr
>  Issue Type: Bug
>  Components: spellchecker
>Affects Versions: 4.9
> Environment: Jetty
> Debian
>Reporter: Hakim
>Priority: Minor
>  Labels: range, spellchecker
> Fix For: 4.9
>
>
> I have an error with SpellCheckComponent since I have added this 
> SearchComponent to /select RequestHandler (see solrconfig.xml).
>   
> 
>  
>explicit
>10
>titre
> 
>on
>default
>true
>3
>3
>5
>true
>true
>10
>1
>false
>false
>  
> The error seems to be related to range queries, with the [.. to ..] written 
> in lowercase. The query performed by the SpellCheck component using 'to' in 
> lower case throws the RANGE_GOOP error.
> 101615 [qtp2145626092-38] WARN  org.apache.solr.spelling.SpellCheckCollator  
> - Exception trying to re-query to check if a spell check possibility would 
> return any hits.
> org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: 
> Cannot parse 'offredemande:offre AND categorieparente:"audi" AND 
> prix:[216 to 2250008} AND anneemodele:[2003 to 2008} AND etat:"nauf"': 
> Encountered "  "2250008 "" at line 1, column 68.
> Was expecting one of:
> "]" ...
> "}" ...
> at 
> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:205)
> at 
> org.apache.solr.spelling.SpellCheckCollator.collate(SpellCheckCollator.java:141)
> at 
> org.apache.solr.handler.component.SpellCheckComponent.addCollationsToResponse(SpellCheckComponent.java:230)
> at 
> org.apache.solr.handler.component.SpellCheckComponent.process(SpellCheckComponent.java:197)
> at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:218)
> at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1962)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
> at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1645)
> at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:564)
> at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
> at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
> at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:)
> at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:498)
> at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
> at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
> at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:199)
> at 
> org.eclipse.jetty.server.handler.IPAccessHandler.handle(IPAccessHandler.java:220)
> at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)
> at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:98)
> at org.eclipse.jetty.server.Server.handle(Server.java:461)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:284)
> at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
> at 
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
> at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
> at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.solr.search.SyntaxError: Cannot parse 
> 'offredemande:offre AND categorieparente:"audi" AND prix:[216 to 2250008} 
> AND anneemodele:[2003 to