Only query parser does the lower casing. For such a special case, I would suggest to use a PrefixQuery or WildcardQuery directly and not use query parser.
----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: u...@thetaphi.de > -----Original Message----- > From: java8964 java8964 [mailto:java8...@hotmail.com] > Sent: Monday, February 01, 2010 5:27 PM > To: java-user@lucene.apache.org > Subject: During the wild card search, will lucene 2.9.0 to convert the > search string to lower case? > > > I noticed a strange result from the following test case. For wildcard > search, my understanding is that lucene will NOT use any analyzer on > the query string. But as the following simple code to show, it looks > like that lucene will lower case the search query in the wildcard > search. Why? If not, why the following test case show the search hits > as one for lower case wildcard search, but not for the upper case data? > My original data is NOT analyzed, so they should be stored as the > original data in the index segment, right? > > Lucene version: 2.9.0 > > JDK version: JDK 1.6.0_17 > > > public class IndexTest1 { > public static void main(String[] args) { > try { > Directory directory = new RAMDirectory(); > IndexWriter writer = new IndexWriter(directory, new > StandardAnalyzer(Version.LUCENE_CURRENT), > IndexWriter.MaxFieldLength.UNLIMITED); > Document doc = new Document(); > doc.add(new Field("title", "BBB CCC", Field.Store.YES, > Field.Index.NOT_ANALYZED)); > writer.addDocument(doc); > doc = new Document(); > doc.add(new Field("title", "ddd eee", Field.Store.YES, > Field.Index.NOT_ANALYZED)); > writer.addDocument(doc); > > writer.close(); > > IndexSearcher searcher = new IndexSearcher(directory, > true); > PerFieldAnalyzerWrapper wrapper = new > PerFieldAnalyzerWrapper(new StandardAnalyzer(Version.LUCENE_CURRENT)); > wrapper.addAnalyzer("title", new KeywordAnalyzer()); > Query query = new QueryParser("title", > wrapper).parse("title:BBB*"); > System.out.println("hits of title = " + > searcher.search(query, 100).totalHits); > query = new QueryParser("title", > wrapper).parse("title:ddd*"); > System.out.println("hits of title = " + > searcher.search(query, 100).totalHits); > searcher.close(); > } catch (Exception e) { > System.out.println(e); > } > } > } > > The output: > hits of title = 0 > hits of title = 1 > > > _________________________________________________________________ > Hotmail: Trusted email with powerful SPAM protection. > http://clk.atdmt.com/GBL/go/201469227/direct/01/ --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org