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/

Reply via email to