On Saturday 19 February 2005 11:02, Erik Hatcher wrote:
>
> On Feb 19, 2005, at 3:52 AM, Paul Elschot wrote:
> >>> By lowercasing the querytext and searching in title_lc ?
> >>
> >> Well sure, but how about this query:
> >>
> >> title:Something AND anotherField:someOtherValue
> >>
> >> QueryParser, as-is, won't be able to do field-name swapping. I could
> >> certainly apply that technique on all the structured queries that I
> >> build up with the API, but with QueryParser it is trickier. I'm
> >> definitely open for suggestions on improving how case is handled. The
> >
> > Overriding this (1.4.3 QueryParser.jj, line 286) might work:
> >
> > protected Query getFieldQuery(String field, String queryText)
> > throws ParseException { ... }
> >
> > It will be called by the parser for both parts of the query above, so
> > one
> > could change the field depending on the requested type of search
> > and the field name in the query.
>
> But that wouldn't work for any other type of query....
> title:somethingFuzzy~
To get that it would be necessary to override all query parser
methods that take a field argument.
>
> Though now that I think more about it, a simple s/title:/title_orig:/
> before parsing would work, and of course make the default field
In the overriding getFieldQuery method something like:
if (caseSensitiveSearch(field) && originalFieldIndexed(field)) {
field = field + "_orig";
} else { //the other 3 cases
...
}
return super.getFieldQuery(field, queryText);
The if statement could be factored out for the other overriding methods.
> dynamic. I need to evaluate how many fields would need to be done
> this way - it'd be several. Thanks for the food for thought!
>
> >> only drawback now is that I'm duplicating indexes, but that is only an
> >> issue in how long it takes to rebuild the index from scratch
> >> (currently
> >> about 20 minutes or so on a good day - when the machine isn't
> >> swamped).
> >
> > Once the users get the hang of this, you might end up having to
> > quadruple
> > the index, or more.
>
> Why would that be? They want a case sensitive/insensitive switch.
> How would it expand beyond that?
With an index for every combination of fields and case sensitivity for these
fields.
Regards,
Paul Elschot
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]