On Thu, Dec 15, 2011 at 11:46 PM, Shai Erera <[email protected]> wrote: > Hi > > For the purpose of running a distributed search and fix the local term > statistics to be the global one, we do the following: > > (1) Receive a query String and parse into a Query object > (2) Call q.extractTerms() > (3) Fetch stats from each Searcher (forget about caching at the moment) > (4) Transmit the fixed statistics to all searchers so they fix their local > stats with the global ones. > > If the query contains a range clause, extractTerms() throws > UnsupportedOperationException, because NumericRangeQuery (and MTQ) do not > override Query.extractTerms. I understand that the numeric range terms are > meaningless, and so I would at least expect it to not do anything, rather > than throw UOE. Throwing an exception IMO is too drastic for this operation, > and it prevents useful functionality.
I think the exception is correct, you need to call extractTerms after rewrite() Mike has a cool test on https://issues.apache.org/jira/browse/LUCENE-3639, and if i recall it tests multitermqueries. currently his searcher overrides IS.rewrite(): @Override rewrite(Query q) { Query rewritten = super.rewrite(q); terms = rewritten.extractTerms(); ... return rewritten; } i added some comments on there about how its all still a bit funky and am hoping we can still make this easier in trunk. -- lucidimagination.com --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
