[
https://issues.apache.org/jira/browse/LUCENE-933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12506351
]
Hoss Man commented on LUCENE-933:
---------------------------------
> I feel comfortable with applying the logic we have for a single (stop)word on
> a group of
> (stop)words, i.e. making the added lines pass.
+1
> Interestingly, consider this query:
> A B +(+C -C)
perhaps an alternate way to view this problem would be to ask: what should
QueryParser do, if asked to parse this string...
A B +()
...if the answer is "treat it like 'A B'" then i think we're okay with the
approach you described above. if the answer is "an empty query doesn't match
anything, so requiring a match on a clause which is an empty query should
result in the outer query matching nothing" then we've got a problem ...
mainly that it contradicts the example you cited from TestQueryParser.testQPA()
if you replace "an empty query" in the previous statement with "a query on a
stop word"
personally, i think it's okay to say "A B +(+C -C)" == "A B" if the analyzer
doesn't produce any tokens for C.
> QueryParser can produce empty sub BooleanQueries when Analyzer proudces no
> tokens for input
> -------------------------------------------------------------------------------------------
>
> Key: LUCENE-933
> URL: https://issues.apache.org/jira/browse/LUCENE-933
> Project: Lucene - Java
> Issue Type: Bug
> Reporter: Hoss Man
>
> as triggered by SOLR-261, if you have a query like this...
> +foo:BBB +(yak:AAA baz:CCC)
> ...where the analyzer produces no tokens for the "yak:AAA" or "baz:CCC"
> portions of the query (posisbly because they are stop words) the resulting
> query produced by the QueryParser will be...
> +foo:BBB +()
> ...that is a BooleanQuery with two required clauses, one of which is an empty
> BooleanQuery with no clauses.
> this does not appear to be "good" behavior.
> In general, QueryParser should be smarter about what it does when parsing
> encountering parens whose contents result in an empty BooleanQuery -- but
> what exactly it should do in the following situations...
> a) +foo:BBB +()
> b) +foo:BBB ()
> c) +foo:BBB -()
> ...is up for interpretation. I would think situation (b) clearly lends
> itself to dropping the sub-BooleanQuery completely. situation (c) may also
> lend itself to that solution, since semanticly it means "don't allow a match
> on any queries in the empty set of queries". .... I have no idea what the
> "right" thing to do for situation (a) is.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]