This is really a Java question, but it involves PyLucene knowledge so I hope no-one minds it being posted here...

I need to use MultiFieldQueryParser, with AND as the default operator. In Python I can do

    fields = ["field_a","field_b"]
    analyzer = StandardAnalyzer(stopwords)
    qp = MultiFieldQueryParser(fields, analyzer)
    qp.setOperator(QueryParser.DEFAULT_OPERATOR_AND)
    query = qp.parseQuery(q)
    hits = searcher.search(query)

but in Java I can't work out how to phrase the code so that it works properly. What I'm trying to do is:

        String[] fields = {"field_a","field_b"};    
        Analyzer analyzer = new StandardAnalyzer(stopwords);
        QueryParser qp = new MultiFieldQueryParser(fields, analyzer);
        qp.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
        Query query = qp.parse(q);
        Hits hits = searcher.search(query);

but it gives an error:
cannot find symbol
[javac] symbol : constructor MultiFieldQueryParser (java.lang.String[],org.apache.lucene.analysis.Analyzer)

whereas this works fine (but still has OR as the default operator):

        String[] fields = {"field_a","field_b"};    
        Analyzer analyzer = new StandardAnalyzer(stopwords);
        Query query = MultiFieldQueryParser.parse(q, fields, analyzer);
        Hits hits = searcher.search(query);

Any ideas? (this is all using (Py)Lucene 1.9.1)

alf.
_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to