lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Santosh Urs <santosh...@gmail.com>
Subject Re: Grouping of Boolean opeartors in Lucene..?
Date Wed, 12 Nov 2008 04:47:06 GMT

Hi Prabin,

Thanks for suggestion . it worked for me.. Thanks

I'm not aware of Boolean Query , since I'm new to lucene technology 
i modified the code like this..

BooleanQuery textQuery = new BooleanQuery();
					BooleanQuery uriQuery = new BooleanQuery();
					
					query2 = mfqp2.parse(orgQuery);
					textQuery.add(query2, Occur.MUST);
					
					for (int i = 0; i < uris.length; i++) {
						query1 = mfqp2.parse(uris[i]);
						uriQuery.add(query1, Occur.SHOULD);
					}
					
					System.out.println("uriQuery====:"+ uriQuery);
					
					textQuery.add(uriQuery, Occur.MUST);

Now its working fine... Thanks....

prabin meitei wrote:
> 
> Hi,
>    You can use Boolean query for the same.
> Boolean query is meant for having a series of queries with boolean
> operators
> defined.
> For eg.
>   lets say you have 3 diff queries A, B, C and you want a final query
> which
> behaves as  A && (B || C)
> BooleanQuery query = new BooleanQuery();
> BooleanQuery temp = new BooleanQuery();
> temp.add(B, Occur.SHOULD); //Occur.SHOULD is equvalent to OR operator
> temp.add(C, Occur.SHOULD);
> query.add(A, Occur.MUST); //Occur.MUST is equivalent to an AND operator
> query.add(temp, Occur.Must);
> 
> Now "query" = A && (B || C)
> 
> Go through lucene documentation about Boolean query
> 
> Hope it helps.
> 
> Prabin
> 
> 
> On Wed, Nov 12, 2008 at 8:56 AM, Santosh Urs <santoshurs@gmail.com> wrote:
> 
>>
>> How can i use multiple Boolean operators in a search query.?
>>
>> For example , from the search text field , i usually get the queries
>> which
>> looks like
>>
>> Any (word or phrase) and ( a list of URI's)
>> example::   rice land  http\://www.wtr.org/wordlist#c_2379
>> http\://www.wtr.org/wordlist#c_65748 http\://www.wtr.org/wordlist#c_7612
>> here the search term or phrase is = rice land
>> URIs are= http\://www.wtr.org/wordlist#c_2379
>> http\://www.wtr.org/wordlist#c_65748 http\://www.wtr.org/wordlist#c_7612
>>
>> Now the way i want to build the Query is::
>>
>> rice land AND ( http\://www.wtr.org/wordlist#c_2379 OR
>> http\://www.wtr.org/wordlist#c_65748 OR http\://
>> www.wtr.org/wordlist#c_7612
>> )
>>
>> i tried this-
>>
>> try {
>>        if (queryString != null && fields != null) {
>>                  PerFieldAnalyzerWrapper perFieldAnalyzer =
>>                                        new
>> PerFieldAnalyzerWrapper(analyzer);
>>                perFieldAnalyzer.addAnalyzer("conceptURI", new
>> KeywordAnalyzer());
>>
>> MultiFieldQueryParser mfqp = new MultiFieldQueryParser(
>>                                                fields, perFieldAnalyzer);
>> if (queryString.contains("http") && !queryString.startsWith("http")) {
>>
>> String orgQuery =queryString.substring(0, queryString.indexOf("http"));
>>                                        String
>> uri=queryString.substring(queryString.indexOf("http"),
>> queryString.length());
>>
>> uri = uri.trim();
>>                                        String[] uris = uri.split(" ");
>>                                        String tempUri="";
>>                                        for (int i = 0; i < uris.length;
>> i++) {
>>                                                if(i== uris.length-1){
>>                                                        tempUri =  tempUri
>> +
>> uris[i];
>>                                                }else {
>>                                                        tempUri =  tempUri
>> +
>> uris[i]+QueryParser.OR_OPERATOR;
>>                                                }
>>                                        }
>>
>> query = mfqp.parse(orgQuery+ QueryParser.AND_OPERATOR+ tempUri );
>>
>>
>>
>>  is this is the correct way to  form a Query..?? Are there any other
>> methods?
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Grouping-of-Boolean-opeartors-in-Lucene..--tp20453434p20453434.html
>> Sent from the Lucene - Java Users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Grouping-of-Boolean-opeartors-in-Lucene..--tp20453434p20454155.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
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