[
https://issues.apache.org/jira/browse/LUCENE-2863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tamas Sandor updated LUCENE-2863:
---------------------------------
Priority: Blocker (was: Major)
> Updating a documenting looses its fields that only indexed, also NumericField
> tries are completely lost
> -------------------------------------------------------------------------------------------------------
>
> Key: LUCENE-2863
> URL: https://issues.apache.org/jira/browse/LUCENE-2863
> Project: Lucene - Java
> Issue Type: Bug
> Components: Store
> Affects Versions: 3.0.2, 3.0.3
> Environment: WindowsXP, Java1.6.20 using a RamDirectory
> Reporter: Tamas Sandor
> Priority: Blocker
>
> I have a code snippet (see below) which creates a new document with standard
> (stored, indexed), *not-stored, indexed-only* and some *NumericFields*. Then
> it updates the document via adding a new string field. The result is that all
> the fields that are not stored but indexed-only and especially NumericFields
> the trie tokens are completly lost from index after update or delete/add.
> {code:java}
> Directory ramDir = new RamDirectory();
> IndexWriter writer = new IndexWriter(ramDir, new WhitespaceAnalyzer(),
> MaxFieldLength.UNLIMITED);
> Document doc = new Document();
> doc.add(new Field("ID", "HO1234", Store.YES, Index.NOT_ANALYZED_NO_NORMS));
> doc.add(new Field("PATTERN", "HELLO", Store.NO, Index.NOT_ANALYZED_NO_NORMS));
> doc.add(new NumericField("LAT", Store.YES,
> true).setDoubleValue(51.488266037777066d));
> doc.add(new NumericField("LNG", Store.YES,
> true).setDoubleValue(-0.08913399651646614d));
> writer.addDocument(doc);
> doc = new Document();
> doc.add(new Field("ID", "HO2222", Store.YES, Index.NOT_ANALYZED_NO_NORMS));
> doc.add(new Field("PATTERN", "BELLO", Store.NO, Index.NOT_ANALYZED_NO_NORMS));
> doc.add(new NumericField("LAT", Store.YES,
> true).setDoubleValue(101.488266037777066d));
> doc.add(new NumericField("LNG", Store.YES,
> true).setDoubleValue(-100.08913399651646614d));
> writer.addDocument(doc);
> Term t = new Term("ID", "HO1234");
> Query q = new TermQuery(t);
> IndexSearcher seacher = new IndexSearcher(writer.getReader());
> TopDocs hits = seacher.search(q, 1);
> if (hits.scoreDocs.length > 0) {
> Document ndoc = seacher.doc(hits.scoreDocs[0].doc);
> ndoc.add(new Field("FINAL", "FINAL", Store.YES,
> Index.NOT_ANALYZED_NO_NORMS));
> writer.updateDocument(t, ndoc);
> // writer.deleteDocuments(q);
> // writer.addDocument(ndoc);
> } else {
> LOG.info("Couldn't find the document via the query");
> }
> seacher = new IndexSearcher(writer.getReader());
> hits = seacher.search(new TermQuery(new Term("PATTERN", "HELLO")), 1);
> LOG.info("_____hits HELLO:" + hits.totalHits); // should be 1 but it's 0
> writer.close();
> {code}
> And I have a boundingbox query based on *NumericRangeQuery*. After the
> document update it doesn't return any hit.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]