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();
}