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]

Reply via email to