Thanks again for reporting this Brent. I opened a JIRA issue: https://issues.apache.org/jira/browse/SOLR-3610
On Mon, Jul 9, 2012 at 3:36 PM, Brent Mills <bmi...@uship.com> wrote: > We're having an issue when we add or change a field in the db-data-config.xml > and schema.xml files in solr. Basically whenever I add something new to > index I add it to the database, then the data config, then add the field to > the schema to index, reload the core, and do a full import. This has worked > fine until we upgraded to an iteration of 4.0 (we are currently on 4.0 > alpha). Now sometimes when we go through this process solr throws errors > about the field not being found. The only way to fix this is to restart > tomcat and everything immediately starts working fine again. > > The interesting thing is that this is only a problem if the database is > returning a value for that field and only in the documents that have a value. > The field shows up in the schema browser in solr, it just has no data in it. > If I completely remove it from the database but leave it in the schema and > dataconfig files there is no issue. Also of note, this is happening on 2 > different machines. > > Here's the trace > > SEVERE: Exception while solr commit. > java.lang.IllegalArgumentException: no such field test > at > org.apache.solr.core.DefaultCodecFactory$1.getPostingsFormatForField(DefaultCodecFactory.java:49) > at > org.apache.lucene.codecs.lucene40.Lucene40Codec$1.getPostingsFormatForField(Lucene40Codec.java:52) > at > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsWriter.addField(PerFieldPostingsFormat.java:94) > at > org.apache.lucene.index.FreqProxTermsWriterPerField.flush(FreqProxTermsWriterPerField.java:335) > at > org.apache.lucene.index.FreqProxTermsWriter.flush(FreqProxTermsWriter.java:85) > at org.apache.lucene.index.TermsHash.flush(TermsHash.java:117) > at org.apache.lucene.index.DocInverter.flush(DocInverter.java:53) > at > org.apache.lucene.index.DocFieldProcessor.flush(DocFieldProcessor.java:82) > at > org.apache.lucene.index.DocumentsWriterPerThread.flush(DocumentsWriterPerThread.java:480) > at > org.apache.lucene.index.DocumentsWriter.doFlush(DocumentsWriter.java:422) > at > org.apache.lucene.index.DocumentsWriter.flushAllThreads(DocumentsWriter.java:554) > at > org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:2547) > at > org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2683) > at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2663) > at > org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:414) > at > org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:82) > at > org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:919) > at > org.apache.solr.update.processor.LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:154) > at > org.apache.solr.handler.dataimport.SolrWriter.commit(SolrWriter.java:107) > at > org.apache.solr.handler.dataimport.DocBuilder.finish(DocBuilder.java:304) > at > org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:256) > at > org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:333) > at > org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:399) > at > org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:380) > -- lucidimagination.com