Hi, I think it makes sense if it returns zero records because you are using BooleanClause.Occur.SHOULD for each field, it means the term "open" should occurs in all fields. but when you specify the field name in your query you limit searching through that mentioned field.
as stated in Lucene javadoc the usage is: String[] fields = {"filename", "contents", "description"}; int[] flags = {MultiFieldQueryParser.NORMAL FIELD, MultiFieldQueryParser.REQUIRED FIELD, MultiFieldQueryParser.PROHIBITED FIELD,}; parse(query, fields, flags, analyzer); -- Regards, Mohammad Norouzi On 2/14/07, Akbar Devani <[EMAIL PROTECTED]> wrote:
Hi, I'm in need of your help.I was looking for how serach multiple fields using Lucene,in one of the mailing list I found your solution to the issue. Its working perfectly but I need to pass query as field:query If I pass only query its returing zero hits. Below is code I'm using. Please do help me out. Thanking you, Akbar Devani. String fields [] = {"Name","Claim Update","Paid Indemnity","Paid Expenses","O/S Indemnity","O/S Expenses", "Incurred"," Status","Date / Added by","Name","Paid Premium","Estimated","Premium Status","File","Detail","Comment","Comments" }; BooleanClause.Occur[] flags = new BooleanClause.Occur[fields.length]; Query query = null; try { for (int i =0 ; i < fields.length ; i++) { flags[i]=BooleanClause.Occur.SHOULD; } query = MultiFieldQueryParser.parse(expression, fields, flags, new StandardAnalyzer()); System.out.println("query:"+query.toString() ); //Log pasted below } catch (ParseException e) { log.error("Unable to make any sense of the query", e); } //Searching try { IndexReader reader = IndexReader.open(ds.getRootPath (SERVLET_INDEX)); IndexSearcher searcher = new IndexSearcher(reader); Hits hits = searcher.search(query); If I'm searching status:open its returing records where as if I'm searching only open its returing zero. Query Object Returned by MultiFieldQueryParser query:open Comment:open Comments:open Currency:open Estimated Premium:open Outstanding Adjuster:open Outstanding Expert:open Outstanding Indemnity:open Outstanding Lawyers:open Outstanding Other:op en Outstanding TPA:open Paid Adjuster:open Paid Expert:open Paid Ind:open Paid Lawyers:open Pa id Movement Expert:open Paid Other:open Paid Premium:open Paid TPA:open Paid movement adjusters: open Paid movement indemnity:open Paid movement lawyers:open Paid movement other:open Transactio n reference:open claim update:open client:open estimated premium:open incurred:open name:open o/s expenses:open o/s indemnity:open paid expenses:open paid indemnity:open paid premium:open p lacing:open producer:open status:open