lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Antony Sequeira" <antony.seque...@gmail.com>
Subject query parser behavior with operator AND
Date Thu, 21 Jun 2007 01:12:27 GMT
Hi,

Following is an output from my test code, where the left hand side is
the query and right hand side is the parsed query print. There are two
sets , one with the default operator set to OR , the other with
default set to AND

The output looks funny for the  for the first example when the
operator is set to AND

Is this a bug. Can some one point me to a bug if it is or help me
understand so I can explain this behavior.

-Antony Sequeira

Tets code output follows:
Testing with default operator set to OR
(fooooo AND barrrr OR "fooooo barrrr") -> +xxxx:fooooo +xxxx:barrrr
xxxx:"fooooo barrrr"
(fooooo AND (barrrr OR "fooooo barrrr")) -> +xxxx:fooooo +(xxxx:barrrr
xxxx:"fooooo barrrr")
((fooooo AND barrrr) OR "fooooo barrrr")  -> (+xxxx:fooooo
+xxxx:barrrr) xxxx:"fooooo barrrr"
Testing with default operator set to AND
(fooooo AND barrrr OR "fooooo barrrr") -> +xxxx:fooooo xxxx:barrrr
xxxx:"fooooo barrrr"
(fooooo AND (barrrr OR "fooooo barrrr")) -> +xxxx:fooooo +(xxxx:barrrr
xxxx:"fooooo barrrr")
((fooooo AND barrrr) OR "fooooo barrrr")  -> (+xxxx:fooooo
+xxxx:barrrr) xxxx:"fooooo barrrr"


Test code follows:


import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.queryParser.QueryParser.Operator;
import org.apache.lucene.search.Query;

public class QueryParserBug {

    String [] testQueries = {
            "(fooooo AND barrrr OR \"fooooo barrrr\")",
            "(fooooo AND (barrrr OR \"fooooo barrrr\"))",
            "((fooooo AND barrrr) OR \"fooooo barrrr\") ",
    };

    QueryParser queryParser;

    private Analyzer analyzer;

    private void log(String msg) {
        System.out.println(msg);
    }

    QueryParserBug() throws Exception {
        analyzer = new StandardAnalyzer();
        queryParser = new QueryParser("xxxx",analyzer);
    }

    public static void main(String [] args) {
        try {
            new QueryParserBug().test(Operator.OR);
            new QueryParserBug().test(Operator.AND);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void test(Operator opr) throws ParseException {
        log("Testing with default operator set to " + opr);
        queryParser.setDefaultOperator(opr);
        for (String query: testQueries) {
            Query lq = queryParser.parse(query);
            log(query + " -> " + lq.toString());
        }

    }

}

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message