On Thu, 13 Apr 2006, Alf Eaton wrote:

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)

Maybe besides the point but this area has changed in Lucene 2.0rc1 (and hence in the latest PyLucene 2.0rc1-5). The code would now be written as:

    fields = ["field_a","field_b"]
    analyzer = StandardAnalyzer(stopwords)
    qp = MultiFieldQueryParser(fields, analyzer)
    qp.setDefaultOperator(QueryParser.Operator.AND)
    query = qp.parse(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);

The simplest way to debug this is to look at the sources for MultiFieldQueryParser.java. The Java Lucene trunk version is here:
http://svn.apache.org/repos/asf/lucene/java/trunk/src/java/org/apache/lucene/queryParser/MultiFieldQueryParser.java

If you need to look at an older release's version, PyLucene 1.9.1 was built from http://svn.apache.org/repos/asf/lucene/java/tags/lucene_1_9_1

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

Reply via email to