On 15/12/2010 01:04, Marvin Humphrey wrote:
It seems to me that the best way to have Expand_Leaf() communicate to Expand() that a clause is optional is to return NULL. That's a little confusing, because when compiling a Query to a Matcher, a NULL Matcher is synonymous with "fails to match". But the only other way I can think of to deal with it would be to introduce a new class, e.g. "VoidQuery", to carry that information.
I only had a cursory glance at the code and it seems that returning NULL is the easiest approach though it looks a bit hackish. Introducing a new VoidQuery class is probably the cleanest solution but I guess it requires a lot more additional code.
Another solution might be to prune stop words in a separate pass over the query string.
Nick
