You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Karthik N S <ka...@controlnet.co.in> on 2005/08/17 08:45:58 UTC
DEFAULT_OPERATOR_AND
Hi Lucener's
Apologies..........
I have seen forms using 'DEFAULT_OPERATOR_AND' with something like below
> QueryParser parser = new QueryParser( "terms", analyzer);
> parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
> query = parser.parse(TextParameters);
How to use the DEFAULT_OPERATOR_AND when using MultiFieldQueryParser as
below
"query = MultiFieldQueryParser.parse("text",fields,analyzer);" ?
[ I also searched the other Form's for same but no answers.]
Thx in advance
Karthik
WITH WARM REGARDS
HAVE A NICE DAY
[ N.S.KARTHIK]
Re: DEFAULT_OPERATOR_AND
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On Aug 19, 2005, at 3:12 AM, Karthik N S wrote:
> With refrence to the code as below
>
>
> public static Query Sparse(String texts, String[] fields, Analyzer
> analyzer)
> {
> Query bQuery = null;
> try {
> for (int i = 0; i < fields.length; i++) {
> QueryParser qp = new QueryParser(fields[i], analyzer);
>
> qp.setOperator
> (org.apache.lucene.queryParser.QueryParser.DEFAULT_OPERATOR_AN
> D);
> bQuery = qp.parse(texts);
> System.out.println("QUERY ANDED :" + bQuery.toString());
> }
> } catch(Exception pxe) {pxe.printStackTrace();}
> return bQuery;
> }
>
> Using a search word = 'blue dial watch'
>
> The Query Represented as +(content:blue content:dial content:watch)
>
> returned me more then 100+ hits
>
> But When used the Query representation on the same Index using LUKE
>
> +content:blue +content:dial +content:watch
>
> returned 10+ hits
>
> Please can u give enlighten me with more some ideas....
Well sure.... you're not building a BooleanQuery as shown in the
original code from MFQP. Simply copy the code I provided, and add
the setOperator into it. You left out important stuff!
Erik
>
>
> With regards
> Karthik
>
>
>
>
> -----Original Message-----
> From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
> Sent: Thursday, August 18, 2005 4:07 PM
> To: java-user@lucene.apache.org
> Subject: Re: DEFAULT_OPERATOR_AND
>
>
>
> On Aug 18, 2005, at 1:48 AM, Karthik N S wrote:
>
>> Does this mean MultiFieldQueryParser will always have to use
>> 'DEFAULT_OPERATOR_OR' instead of DEFAULT_OPERATOR_AND
>> operations.
>>
>
> Yup, that's what I said :)
>
>
>> Is there any alternative in handling this processs ( other then API
>> 'replaceAll(" ", " AND ")' substution)
>>
>
> Of course there are alternatives! MFQP is merely a thin layer on
> top of QueryParser. You're free to create Query's anyway you like.
> Here's one of the parse methods from MFQP:
>
> public static Query parse(String[] queries, String[] fields,
> Analyzer analyzer) throws ParseException
> {
> if (queries.length != fields.length)
> throw new IllegalArgumentException("queries.length !=
> fields.length");
> BooleanQuery bQuery = new BooleanQuery();
> for (int i = 0; i < fields.length; i++)
> {
> QueryParser qp = new QueryParser(fields[i], analyzer);
> Query q = qp.parse(queries[i]);
> bQuery.add(q, BooleanClause.Occur.SHOULD);
> }
> return bQuery;
> }
>
> You could simply create a piece of code like that with the
> setOperator in there.
>
> Erik
>
>
>
>
>>
>>
>> Please enlighten me
>>
>>
>>
>> With regards
>> Karthik
>>
>>
>> -----Original Message-----
>> From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
>> Sent: Thursday, August 18, 2005 7:09 AM
>> To: java-user@lucene.apache.org
>> Subject: Re: DEFAULT_OPERATOR_AND
>>
>>
>>
>> On Aug 17, 2005, at 2:45 AM, Karthik N S wrote:
>>
>>
>>> Hi Lucener's
>>>
>>> Apologies..........
>>>
>>> I have seen forms using 'DEFAULT_OPERATOR_AND' with something
>>> like below
>>>
>>>
>>>
>>>> QueryParser parser = new QueryParser( "terms", analyzer);
>>>> parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
>>>> query = parser.parse(TextParameters);
>>>>
>>>>
>>>
>>> How to use the DEFAULT_OPERATOR_AND when using
>>> MultiFieldQueryParser as below
>>>
>>> "query = MultiFieldQueryParser.parse("text",fields,analyzer);" ?
>>>
>>> [ I also searched the other Form's for same but no answers.]
>>>
>>>
>>
>> MultiFieldQueryParser does not adhere to the default operator
>> setting, and will always use OR.
>>
>> Erik
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
RE: DEFAULT_OPERATOR_AND
Posted by Karthik N S <ka...@controlnet.co.in>.
Hi Erik
Apologies...........
With refrence to the code as below
public static Query Sparse(String texts, String[] fields, Analyzer analyzer)
{
Query bQuery = null;
try {
for (int i = 0; i < fields.length; i++) {
QueryParser qp = new QueryParser(fields[i], analyzer);
qp.setOperator(org.apache.lucene.queryParser.QueryParser.DEFAULT_OPERATOR_AN
D);
bQuery = qp.parse(texts);
System.out.println("QUERY ANDED :" + bQuery.toString());
}
} catch(Exception pxe) {pxe.printStackTrace();}
return bQuery;
}
Using a search word = 'blue dial watch'
The Query Represented as +(content:blue content:dial content:watch)
returned me more then 100+ hits
But When used the Query representation on the same Index using LUKE
+content:blue +content:dial +content:watch
returned 10+ hits
Please can u give enlighten me with more some ideas....
With regards
Karthik
-----Original Message-----
From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
Sent: Thursday, August 18, 2005 4:07 PM
To: java-user@lucene.apache.org
Subject: Re: DEFAULT_OPERATOR_AND
On Aug 18, 2005, at 1:48 AM, Karthik N S wrote:
> Does this mean MultiFieldQueryParser will always have to use
> 'DEFAULT_OPERATOR_OR' instead of DEFAULT_OPERATOR_AND
> operations.
Yup, that's what I said :)
> Is there any alternative in handling this processs ( other then API
> 'replaceAll(" ", " AND ")' substution)
Of course there are alternatives! MFQP is merely a thin layer on
top of QueryParser. You're free to create Query's anyway you like.
Here's one of the parse methods from MFQP:
public static Query parse(String[] queries, String[] fields,
Analyzer analyzer) throws ParseException
{
if (queries.length != fields.length)
throw new IllegalArgumentException("queries.length !=
fields.length");
BooleanQuery bQuery = new BooleanQuery();
for (int i = 0; i < fields.length; i++)
{
QueryParser qp = new QueryParser(fields[i], analyzer);
Query q = qp.parse(queries[i]);
bQuery.add(q, BooleanClause.Occur.SHOULD);
}
return bQuery;
}
You could simply create a piece of code like that with the
setOperator in there.
Erik
>
>
> Please enlighten me
>
>
>
> With regards
> Karthik
>
>
> -----Original Message-----
> From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
> Sent: Thursday, August 18, 2005 7:09 AM
> To: java-user@lucene.apache.org
> Subject: Re: DEFAULT_OPERATOR_AND
>
>
>
> On Aug 17, 2005, at 2:45 AM, Karthik N S wrote:
>
>> Hi Lucener's
>>
>> Apologies..........
>>
>> I have seen forms using 'DEFAULT_OPERATOR_AND' with something
>> like below
>>
>>
>>> QueryParser parser = new QueryParser( "terms", analyzer);
>>> parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
>>> query = parser.parse(TextParameters);
>>>
>>
>> How to use the DEFAULT_OPERATOR_AND when using
>> MultiFieldQueryParser as below
>>
>> "query = MultiFieldQueryParser.parse("text",fields,analyzer);" ?
>>
>> [ I also searched the other Form's for same but no answers.]
>>
>
> MultiFieldQueryParser does not adhere to the default operator
> setting, and will always use OR.
>
> Erik
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: DEFAULT_OPERATOR_AND
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On Aug 18, 2005, at 1:48 AM, Karthik N S wrote:
> Does this mean MultiFieldQueryParser will always have to use
> 'DEFAULT_OPERATOR_OR' instead of DEFAULT_OPERATOR_AND
> operations.
Yup, that's what I said :)
> Is there any alternative in handling this processs ( other then API
> 'replaceAll(" ", " AND ")' substution)
Of course there are alternatives! MFQP is merely a thin layer on
top of QueryParser. You're free to create Query's anyway you like.
Here's one of the parse methods from MFQP:
public static Query parse(String[] queries, String[] fields,
Analyzer analyzer) throws ParseException
{
if (queries.length != fields.length)
throw new IllegalArgumentException("queries.length !=
fields.length");
BooleanQuery bQuery = new BooleanQuery();
for (int i = 0; i < fields.length; i++)
{
QueryParser qp = new QueryParser(fields[i], analyzer);
Query q = qp.parse(queries[i]);
bQuery.add(q, BooleanClause.Occur.SHOULD);
}
return bQuery;
}
You could simply create a piece of code like that with the
setOperator in there.
Erik
>
>
> Please enlighten me
>
>
>
> With regards
> Karthik
>
>
> -----Original Message-----
> From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
> Sent: Thursday, August 18, 2005 7:09 AM
> To: java-user@lucene.apache.org
> Subject: Re: DEFAULT_OPERATOR_AND
>
>
>
> On Aug 17, 2005, at 2:45 AM, Karthik N S wrote:
>
>> Hi Lucener's
>>
>> Apologies..........
>>
>> I have seen forms using 'DEFAULT_OPERATOR_AND' with something
>> like below
>>
>>
>>> QueryParser parser = new QueryParser( "terms", analyzer);
>>> parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
>>> query = parser.parse(TextParameters);
>>>
>>
>> How to use the DEFAULT_OPERATOR_AND when using
>> MultiFieldQueryParser as below
>>
>> "query = MultiFieldQueryParser.parse("text",fields,analyzer);" ?
>>
>> [ I also searched the other Form's for same but no answers.]
>>
>
> MultiFieldQueryParser does not adhere to the default operator
> setting, and will always use OR.
>
> Erik
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
RE: DEFAULT_OPERATOR_AND
Posted by Karthik N S <ka...@controlnet.co.in>.
Hi Luceners..
Apologies...........
Does this mean MultiFieldQueryParser will always have to use
'DEFAULT_OPERATOR_OR' instead of DEFAULT_OPERATOR_AND
operations.
Is there any alternative in handling this processs ( other then API
'replaceAll(" ", " AND ")' substution)
Please enlighten me
With regards
Karthik
-----Original Message-----
From: Erik Hatcher [mailto:erik@ehatchersolutions.com]
Sent: Thursday, August 18, 2005 7:09 AM
To: java-user@lucene.apache.org
Subject: Re: DEFAULT_OPERATOR_AND
On Aug 17, 2005, at 2:45 AM, Karthik N S wrote:
> Hi Lucener's
>
> Apologies..........
>
> I have seen forms using 'DEFAULT_OPERATOR_AND' with something
> like below
>
> > QueryParser parser = new QueryParser( "terms", analyzer);
> > parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
> > query = parser.parse(TextParameters);
>
> How to use the DEFAULT_OPERATOR_AND when using
> MultiFieldQueryParser as below
>
> "query = MultiFieldQueryParser.parse("text",fields,analyzer);" ?
>
> [ I also searched the other Form's for same but no answers.]
MultiFieldQueryParser does not adhere to the default operator
setting, and will always use OR.
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: DEFAULT_OPERATOR_AND
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On Aug 17, 2005, at 2:45 AM, Karthik N S wrote:
> Hi Lucener's
>
> Apologies..........
>
> I have seen forms using 'DEFAULT_OPERATOR_AND' with something
> like below
>
> > QueryParser parser = new QueryParser( "terms", analyzer);
> > parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
> > query = parser.parse(TextParameters);
>
> How to use the DEFAULT_OPERATOR_AND when using
> MultiFieldQueryParser as below
>
> "query = MultiFieldQueryParser.parse("text",fields,analyzer);" ?
>
> [ I also searched the other Form's for same but no answers.]
MultiFieldQueryParser does not adhere to the default operator
setting, and will always use OR.
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org