[
https://issues.apache.org/jira/browse/LUCENE-1881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12750243#action_12750243
]
Wai Wong commented on LUCENE-1881:
----------------------------------
Thanks Hoss for this quick response. Where could I get the fix for testing?
We are rushing for a roll out requiring this fix, thanks.
> 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: [email protected]
For additional commands, e-mail: [email protected]