Roberto Cornacchia created LUCENE-7171:
------------------------------------------
Summary: IndexableField changes its FieldType when it gets stored
into a new index
Key: LUCENE-7171
URL: https://issues.apache.org/jira/browse/LUCENE-7171
Project: Lucene - Core
Issue Type: Bug
Affects Versions: 5.5
Reporter: Roberto Cornacchia
This code:
{code}
/* Store one document into an index */
Directory index = new RAMDirectory();
IndexWriterConfig config = new IndexWriterConfig(new StandardAnalyzer());
IndexWriter w = new IndexWriter(index, config);
Document d1 = new Document();
d1.add(new StringField("isbn", "9900333X", Field.Store.YES));
w.addDocument(d1);
w.commit();
w.close();
/* inspect IndexableFieldType */
IndexableField f1 = d1.getField("isbn");
System.err.println("FieldType for " + f1.stringValue() + " : " +
f1.fieldType());
/* retrieve all documents and inspect IndexableFieldType */
IndexSearcher s = new IndexSearcher(DirectoryReader.open(index));
TopDocs td = s.search(new MatchAllDocsQuery(), 1);
for (ScoreDoc sd : td.scoreDocs) {
Document d2 = s.doc(sd.doc);
IndexableField f2 = d2.getField("isbn");
System.err.println("FieldType for " + f2.stringValue() + " : " +
f2.fieldType());
}
{code}
Produces:
{code}
FieldType for 9900333X : stored,indexed,omitNorms,indexOptions=DOCS
FieldType for 9900333X : stored,indexed,tokenized,omitNorms,indexOptions=DOCS
{code}
The {{StringField}} field {{isbn}} is not tokenized, as correctly reported by
the first output, which happens right after closing the writer.
However, it becomes tokenized when the index is re-opened with a new reader.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]