[ https://issues.apache.org/jira/browse/LUCENE-1881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hoss Man resolved LUCENE-1881. ------------------------------ Resolution: Fixed Assignee: Hoss Man Committed revision 810324. i went ahead and fixed this using the "display the '1' bucket" approach. > Non-stored fields are not copied in writer.addDocument()? > --------------------------------------------------------- > > Key: LUCENE-1881 > URL: https://issues.apache.org/jira/browse/LUCENE-1881 > Project: Lucene - Java > Issue Type: Bug > Components: Store > Affects Versions: 2.4.1 > Environment: Linux > Reporter: Wai Wong > Assignee: Hoss Man > Priority: Critical > > We would like to modified stored documents properties. The method is to use > IndexReader to open all files, modified some fields, and copy the document > via addDocument() of IndexWriter to another index. But all fields that are > created using Field.Store.NO are no longer available for searching. > Sample code in jsp is attached: > <%@ page language="java" > import="org.apache.lucene.analysis.standard.StandardAnalyzer;"%> > <%@ page language="java" import="org.apache.lucene.document.*;"%> > <%@ page language="java" import="org.apache.lucene.index.*;"%> > <%@ page language="java" import="org.apache.lucene.search.*;"%> > <%@ page contentType="text/html; charset=utf8" %> > <% > // create for testing > IndexWriter writer = new IndexWriter("/opt/wwwroot/351/Index/test", new > StandardAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED); > Document doc = new Document(); > doc.add(new Field("A", "1234", Field.Store.NO , > Field.Index.NOT_ANALYZED)); > doc.add(new Field("B", "abcd", Field.Store.NO , > Field.Index.NOT_ANALYZED)); > writer.addDocument(doc); > writer.close(); > // check ok > Query q = new TermQuery(new Term("A", "1234")); > Searcher s = new IndexSearcher("/opt/wwwroot/351/Index/test"); > Hits h = s.search(q); > out.println("# of document found is " + h.length()); // it is ok > // update the document to change or remove a field > IndexReader r = IndexReader.open("/opt/wwwroot/351/Index/test"); > doc = r.document(0); > r.deleteDocument(0); > r.close(); > doc.removeField("B"); > writer = new IndexWriter("/opt/wwwroot/351/Index/test1", new > StandardAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED); > writer.addDocument(doc); > writer.optimize(); > writer.close(); > // test again > s = new IndexSearcher("/opt/wwwroot/351/Index/test1"); > h = s.search(q); > out.println("<P># of document found is now " + h.length()); > r = IndexReader.open("/opt/wwwroot/351/Index/test1"); > out.println("<P> max Doc is " + r.maxDoc()); > %> -- 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: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org