Define an Analyzer that does not lowercase the id field, e.g., something
like:
public class MyAnalyzer extends Analyzer {
private Analyzer standard = new StandardAnalyzer();
public TokenStream tokenStream(String field, final Reader reader) {
if ("id".equals(field)) {
return new WhitespaceTokenizer(reader);
} else {
return standard.tokenStream(field, reader);
}
}
}
Then pass this into QueryParser.
Doug
> -----Original Message-----
> From: Landon Cox
> [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, May 09, 2002 9:52 AM
> To: [EMAIL PROTECTED]
> Subject: QueryParser question - case-sensitivity
>
>
>
> I have a QueryParser/Query question. These classes (not sure
> which) is
> apparently converting my term values into lowercase even though Term's
> values are by default case-sensitive. I've got non-word
> text, id's, that
> are case sensitive and stored/indexed that way, but query
> parser is not
> respecting my case sensitive search criterion.
>
> For example, I create a query string:
>
> id:"templatedata/f2container/data/Course1102043194747042"
>
> and pass this to the QueryParser.parse() method. When I dump
> the Query with
> toString() I get:
>
> +id:templatedata/f2container/data/course1102043194747042
>
> Naturally, this query fails as I'm expecting a hit on the id with the
> uppercase C. If I create and index an id all lower case,
> then the query
> succeeds. Case-sensitivity is important to maintain for querying this
> element, especially using it once the hit occurs.
>
> How do I coerce QueryParser/Query to not 'tolower' my query
> string? or is
> there an alternate method that's more direct which takes my
> query string
> with no modification?
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>