--- Erik Hatcher <[EMAIL PROTECTED]> wrote: > On Thursday, November 13, 2003, at 03:28 PM, Dan > Quaroni wrote: > > To my knowledge the answer is No, lucene performs > each query > > separately and > > then performs the joins after it has all the > results. This is > > actually a > > rather serious problem when it comes to searches > in large indexes > > where a > > single field is very important but has a very low > uniqueness. > > > > For example, if you were searching for a telephone > number for a > > company in a > > lucene index of all of the companies in the US and > you knew the state, > > city, > > and name, the query would come up being something > like: > > > > name:Bob's Discount Furniture AND state:California > AND city:San Diego > > > > Now, that query is going to retrieve EVERY Bob's > discount furniture, > > EVERY > > company in California, and EVERY city in San Diego > and then join them. > > That > > makes the memory requirements for this query far > higher than they > > really > > need to be. > > If you know ahead of time that queries of this type > would be made, then > it could be "optimized" by doing the query that has > the fewest hits > first, then using a QueryFilter for successive > queries to narrow it to > the precise criteria. Granted this doesn't help > when the queries can > be entered free-form via QueryParser. > > Erik
Erik, Just to make sure I understand you right, In an example query: ZipCode:CA10927 AND Gender:Male Sure I know ZipCode returns fewer results, do you mean I build a filter QueryFilter x = new QueryFilter("ZipCode", "CA10927", ..); Then build the query Query y = QueryParser.parse("Gender:Male", "Gender", ..); Then run it Hit result = searcher.search(y, x); I tried that, and the performance does not improve. when I trace down the code, I found searcher object searches on both ZipCode and Gender for terms information (expesive) before processing on the filters. Am I doing something wrong, or you mean something else? I would really appriciate if you can post an example to this list, or send a copy of to my mail address at [EMAIL PROTECTED] Kind Regards > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > ________________________________________________________________________ Want to chat instantly with your online friends? Get the FREE Yahoo! Messenger http://mail.messenger.yahoo.co.uk --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]