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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]