if everything goes well I'll be delighted to be part of this project this summer together with my assigned mentor Mike. My task will be to introduce new classes to Lucene core which will enable to separate Fields' Lucene properties from it's value (https://issues.apache.org/jira/browse/LUCENE-2308
As you assume, this will largely impact lucene & solr, so we need to think this through thoroughly.
Changes will include:
- Introduction of an FieldType class that will hold all the extra properties now stored inside Field instance other than field value itself.
- New FieldTypeAttribute interface will be added to handle extension with new field properties inspired by IndexWriterConfig.
- Refactoring and dividing of settings for term frequency and positioning can also be done (LUCENE-2048)
- Discuss possible effects of completion of LUCENE-2310 on this project
- Adequate Factory class for easier configuration of new Field instances together with manually added new FieldTypeAttributes
- FieldType, once instantiated is read-only. Only fields value can be changed.
- Simple hierarchy of Field classes with core properties logically predefaulted. E.g.:
My questions and issues:
- Backward compatibility? Will this go to Lucene 3.0?
- What is the best way to break this into small baby steps?