[ 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]