Ah, that now makes sense. Changed the code and now it works.
Thanks for the help. On Monday, 16 June 2014, Allison, Timothy B. <talli...@mitre.org> wrote: > The problem is that you are using an analyzer at index time but then not > at search time. > > StandardAnalyzer will convert "Name1" to "name1" at index time. > > At search time, because you aren't using a query parser (which would by > default lowercase your terms) you are literally searching for "Name1" which > doesn't exist in your index. > > -----Original Message----- > From: Andrew Norman [mailto:kiwico...@gmail.com <javascript:;>] > Sent: Monday, June 16, 2014 8:43 AM > To: java-user@lucene.apache.org <javascript:;> > Subject: Index Not Finding Results some times > > Hi, > > I am using Lucene 3.6.2 (I cannot upgrade due to 3rd party dependencies). > > I have written the following code below to illustrate the problem. I create > a single document, add three fields, put it into the index. When I attempt > to find the document using exact matches I can find the document 2 out of 3 > times. I have read the documentation and google'd but I am currently > drawing a blank as to where my mistake is. Any pointers would be gratefully > received. > > Regards > Kiwicoder > > > public static void main(String[] args) throws CorruptIndexException, > LockObtainFailedException, IOException { > RAMDirectory directory = new RAMDirectory(); > > IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_36, > new StandardAnalyzer(Version.LUCENE_36)); > IndexWriter writer = new IndexWriter(directory, config); > > Document doc = new Document(); > > doc.add(new Field("id", "c71fa7f8-32c2-4cb3-97d8-4728322079db", > Field.Store.YES, Field.Index.NOT_ANALYZED)); > doc.add(new Field("type", "data", Field.Store.NO, > Field.Index.ANALYZED)); > doc.add(new Field("name", "Name1", Field.Store.NO, > Field.Index.ANALYZED)); > > writer.addDocument(doc); > > writer.close(); > > // ------------------------------------------- > IndexReader reader = IndexReader.open(directory); > > IndexSearcher search = new IndexSearcher(reader); > System.out.println("ID: " + search.search(new TermQuery(new > Term("id", "c71fa7f8-32c2-4cb3-97d8-4728322079db")), 100).totalHits); // 1 > document found > System.out.println("TYPE: " + search.search(new TermQuery(new > Term("type", "data")), 100).totalHits); // 1 document found > System.out.println("NAME: " + search.search(new TermQuery(new > Term("name", "Name1")), 100).totalHits); // 0 document found > search.close(); > } >