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]