Return-Path: Delivered-To: apmail-lucene-java-dev-archive@www.apache.org Received: (qmail 88068 invoked from network); 2 Sep 2009 01:01:03 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 2 Sep 2009 01:01:03 -0000 Received: (qmail 93669 invoked by uid 500); 2 Sep 2009 01:01:02 -0000 Delivered-To: apmail-lucene-java-dev-archive@lucene.apache.org Received: (qmail 93611 invoked by uid 500); 2 Sep 2009 01:01:02 -0000 Mailing-List: contact java-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-dev@lucene.apache.org Received: (qmail 93602 invoked by uid 99); 2 Sep 2009 01:01:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Sep 2009 01:01:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Sep 2009 01:00:53 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 98988234C053 for ; Tue, 1 Sep 2009 18:00:33 -0700 (PDT) Message-ID: <1059447100.1251853233624.JavaMail.jira@brutus> Date: Tue, 1 Sep 2009 18:00:33 -0700 (PDT) From: "Hoss Man (JIRA)" To: java-dev@lucene.apache.org Subject: [jira] Resolved: (LUCENE-1881) Non-stored fields are not copied in writer.addDocument()? In-Reply-To: <1252182110.1251807753055.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/LUCENE-1881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Hoss Man resolved LUCENE-1881. ------------------------------ Resolution: Invalid > 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("

# of document found is now " + h.length()); > r = IndexReader.open("/opt/wwwroot/351/Index/test1"); > out.println("

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-unsubscribe@lucene.apache.org For additional commands, e-mail: java-dev-help@lucene.apache.org