List Info

Thread: MultiFieldQueryParser default operator in Java




MultiFieldQueryParser default operator in Java
user name
2006-04-13 19:09:20
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
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
MultiFieldQueryParser default operator in Java
user name
2006-04-13 20:23:36
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/jav
a/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/lu
cene_1_9_1

Andi..
_______________________________________________
pylucene-dev mailing list
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
MultiFieldQueryParser default operator in Java
user name
2006-04-13 20:52:59
On 13 Apr 2006, at 16:23, Andi Vajda wrote:

>> 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 htt
p://svn.apache.org/repos/asf/lucene/java/tags/ 
> lucene_1_9_1

That's where I get confused, because it has

   public MultiFieldQueryParser(String[] fields, Analyzer
analyzer) {
     super(null, analyzer);
     this.fields = fields;
   }

right at the start.

alf.
_______________________________________________
pylucene-dev mailing list
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
MultiFieldQueryParser default operator in Java
user name
2006-04-13 21:01:30
On 13 Apr 2006, at 16:52, Alf Eaton wrote:
>
> On 13 Apr 2006, at 16:23, Andi Vajda wrote:
>
>>> 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 htt
p://svn.apache.org/repos/asf/lucene/java/tags/ 
>> lucene_1_9_1
>
> That's where I get confused, because it has
>
>   public MultiFieldQueryParser(String[] fields,
Analyzer analyzer) {
>     super(null, analyzer);
>     this.fields = fields;
>   }
>
> right at the start.

Never mind, I think java was picking up an old version of
Lucene that  
was installed in the system path.

Sorry for the inconvenience.

alf.
_______________________________________________
pylucene-dev mailing list
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
[1-4]

about | contact  Other archives ( Real Estate discussion Medical topics )