Re: Parsing exception when passed defType complexphrase vs. local parameters?
Yeah, this is SOLR-11501 -- I missed this change somehow. I will update the tests; they assume people could tweak local parameters for a query parser. Thanks for pointing me at the right issue! D. On Wed, Feb 28, 2018 at 3:56 PM, David Smileywrote: > Yeah this is almost certainly SOLR-11501. I bet you have defType=edismax or > something. Essentially, the reason being is if you set defType=whatever > then your query should be using that query parser and not something embedded > into 'q' (i.e. the user shouldn't be able to change it). So either unset > defType if you would prefer to send 'q' with the query parser in > local-params, or go the other way and set defType=complexphrase. If you > must set local-param only options (e.g. inOrder might be; not sure) then > you'll have to go with setting it via 'q'. Does that make sense? > > (BTW this is a solr-user list question). > > On Wed, Feb 28, 2018 at 9:39 AM Christine Poerschke (BLOOMBERG/ LONDON) > wrote: >> >> Hi Dawid, >> >> The symptoms you mention sound similar to the SOLR-11809 symptoms and the >> SOLR-11501 changes are probably the 'mysterious' change you might have been >> looking for? >> >> Christine >> >> - Original Message - >> From: dev@lucene.apache.org >> To: dev@lucene.apache.org >> Cc: m...@apache.org >> At: 02/28/18 14:06:05 >> >> I am in the process of upgrading from Solr 6.x to 7.2.1 and one of the >> tests does query for: >> >> {!complexphrase inOrder=false}"(foo1 foo2) ba*" >> >> This works just fine. Another test specifies the query parser using >> defType=complexphrase and this query no longer parses: >> >> {!inOrder=false}"(foo1 foo2) ba*" >> >> Resulting in an exception on the server: >> >> 2018-02-28 13:55:36.749 ERROR (qtp581374081-50) [ x:proposals] >> o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: >> org.apache.solr.search.SyntaxError: >> org.apache.lucene.queryparser.classic.ParseException: Cannot parse >> '{!inOrder=false} "(foo1 foo2) ba*"': Encountered " "}" "} "" at line >> 1, column 15. >> Was expecting: >> "TO" ... >> >> at >> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:218) >> ... >> >> Caused by: org.apache.solr.search.SyntaxError: >> org.apache.lucene.queryparser.classic.ParseException: Cannot parse >> '{!inOrder=false} "(foo1 foo2) ba*"': Encountered " "}" "} "" at line >> 1, column 15. >> Was expecting: >> "TO" ... >> >> at >> org.apache.solr.search.ComplexPhraseQParserPlugin$ComplexPhraseQParser.parse(ComplexPhraseQParserPlugin.java:166) >> >> Anybody cares to tell me why is this a difference? Last significant >> commit to ComplexPhraseQParser was from Mikhail... but how does >> passing the query parser make a difference here? >> >> Dawid >> >> - >> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >> For additional commands, e-mail: dev-h...@lucene.apache.org >> >> > -- > Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker > LinkedIn: http://linkedin.com/in/davidwsmiley | Book: > http://www.solrenterprisesearchserver.com - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
Re: Parsing exception when passed defType complexphrase vs. local parameters?
Yeah this is almost certainly SOLR-11501. I bet you have defType=edismax or something. Essentially, the reason being is if you set defType=whatever then your query should be using that query parser and not something embedded into 'q' (i.e. the user shouldn't be able to change it). So either unset defType if you would prefer to send 'q' with the query parser in local-params, or go the other way and set defType=complexphrase. If you must set local-param only options (e.g. inOrder might be; not sure) then you'll have to go with setting it via 'q'. Does that make sense? (BTW this is a solr-user list question). On Wed, Feb 28, 2018 at 9:39 AM Christine Poerschke (BLOOMBERG/ LONDON) < cpoersc...@bloomberg.net> wrote: > Hi Dawid, > > The symptoms you mention sound similar to the SOLR-11809 symptoms and the > SOLR-11501 changes are probably the 'mysterious' change you might have been > looking for? > > Christine > > - Original Message - > From: dev@lucene.apache.org > To: dev@lucene.apache.org > Cc: m...@apache.org > At: 02/28/18 14:06:05 > > I am in the process of upgrading from Solr 6.x to 7.2.1 and one of the > tests does query for: > > {!complexphrase inOrder=false}"(foo1 foo2) ba*" > > This works just fine. Another test specifies the query parser using > defType=complexphrase and this query no longer parses: > > {!inOrder=false}"(foo1 foo2) ba*" > > Resulting in an exception on the server: > > 2018-02-28 13:55:36.749 ERROR (qtp581374081-50) [ x:proposals] > o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: > org.apache.solr.search.SyntaxError: > org.apache.lucene.queryparser.classic.ParseException: Cannot parse > '{!inOrder=false} "(foo1 foo2) ba*"': Encountered " "}" "} "" at line > 1, column 15. > Was expecting: > "TO" ... > > at > org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:218) > ... > > Caused by: org.apache.solr.search.SyntaxError: > org.apache.lucene.queryparser.classic.ParseException: Cannot parse > '{!inOrder=false} "(foo1 foo2) ba*"': Encountered " "}" "} "" at line > 1, column 15. > Was expecting: > "TO" ... > > at > org.apache.solr.search.ComplexPhraseQParserPlugin$ComplexPhraseQParser.parse(ComplexPhraseQParserPlugin.java:166) > > Anybody cares to tell me why is this a difference? Last significant > commit to ComplexPhraseQParser was from Mikhail... but how does > passing the query parser make a difference here? > > Dawid > > - > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: dev-h...@lucene.apache.org > > > -- Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker LinkedIn: http://linkedin.com/in/davidwsmiley | Book: http://www.solrenterprisesearchserver.com
Parsing exception when passed defType complexphrase vs. local parameters?
I am in the process of upgrading from Solr 6.x to 7.2.1 and one of the tests does query for: {!complexphrase inOrder=false}"(foo1 foo2) ba*" This works just fine. Another test specifies the query parser using defType=complexphrase and this query no longer parses: {!inOrder=false}"(foo1 foo2) ba*" Resulting in an exception on the server: 2018-02-28 13:55:36.749 ERROR (qtp581374081-50) [ x:proposals] o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: org.apache.lucene.queryparser.classic.ParseException: Cannot parse '{!inOrder=false} "(foo1 foo2) ba*"': Encountered " "}" "} "" at line 1, column 15. Was expecting: "TO" ... at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:218) ... Caused by: org.apache.solr.search.SyntaxError: org.apache.lucene.queryparser.classic.ParseException: Cannot parse '{!inOrder=false} "(foo1 foo2) ba*"': Encountered " "}" "} "" at line 1, column 15. Was expecting: "TO" ... at org.apache.solr.search.ComplexPhraseQParserPlugin$ComplexPhraseQParser.parse(ComplexPhraseQParserPlugin.java:166) Anybody cares to tell me why is this a difference? Last significant commit to ComplexPhraseQParser was from Mikhail... but how does passing the query parser make a difference here? Dawid - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org