lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anthony Yeracaris (JIRA)" <j...@apache.org>
Subject [jira] Updated: (LUCENE-993) MultiFieldQueryParser doesn't process search strings containing field references correctly when BooleanClause.Occur.MUST_NOT is used
Date Wed, 05 Sep 2007 15:41:35 GMT

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

Anthony Yeracaris updated LUCENE-993:
-------------------------------------

    Attachment: MultiFieldQueryParserBug.java

> MultiFieldQueryParser doesn't process search strings containing field references correctly
when BooleanClause.Occur.MUST_NOT is used
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-993
>                 URL: https://issues.apache.org/jira/browse/LUCENE-993
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: QueryParser, Search
>    Affects Versions: 2.2
>            Reporter: Anthony Yeracaris
>         Attachments: MultiFieldQueryParserBug.java
>
>
> Below, and attached, is a complete java program illustrating this bug.
> In this program,I have an "allowed" field and a "restricted" field.  The user is not
permitted to search the "restricted" field.  However, if the user provides the search string
"allowed:value", then the MultiFieldQueryParser returns "allowed:valu -allowed:valu", which
has the effect of finding nothing.
> In the case the user provides a search string containing field references, I would expect
the parser to use the field and occur arrays as constraints.  In other words, if a the user
mentions a field that has an occur of MUST_NOT, then that field should be elided from the
search. At the end of parsing, there must be at least one search term, all MUST fields must
have been mentioned.
> import org.apache.lucene.queryParser.MultiFieldQueryParser;
> import org.apache.lucene.queryParser.ParseException;
> import org.apache.lucene.search.BooleanClause;
> import org.apache.lucene.analysis.snowball.SnowballAnalyzer;
> public class MultiFieldQueryParserBug {
>   public static void main(String[] argv) {
>     try
>     {
>       System.out.println(MultiFieldQueryParser.parse("allowed:value",
>           new String[]{"allowed", "restricted"},
>           new BooleanClause.Occur[]{BooleanClause.Occur.SHOULD, BooleanClause.Occur.MUST_NOT},
>           new SnowballAnalyzer("English")));
>       // Output is:
>       // allowed:valu -allowed:valu
>     }
>     catch (ParseException e)
>     {
>       e.printStackTrace();  // generated
>     }
>   }
> }

-- 
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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message