github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/codec/lucene42/codec.go (about) 1 package lucene42 2 3 import ( 4 "github.com/balzaczyy/golucene/core/codec/lucene40" 5 "github.com/balzaczyy/golucene/core/codec/lucene41" 6 "github.com/balzaczyy/golucene/core/codec/perfield" 7 // "github.com/balzaczyy/golucene/core/codec/lucene42" 8 . "github.com/balzaczyy/golucene/core/codec/spi" 9 . "github.com/balzaczyy/golucene/core/index/model" 10 ) 11 12 // lucene42/Lucene42Codec.java 13 14 /* 15 Implements the Lucene 4.2 index format, with configurable per-field 16 postings and docvalues formats. 17 18 If you want to reuse functionality of this codec, in another codec, 19 extend FilterCodec. 20 */ 21 var Lucene42Codec = NewCodec("Lucene42", 22 lucene41.NewLucene41StoredFieldsFormat(), 23 NewLucene42TermVectorsFormat(), 24 NewLucene42FieldInfosFormat(), 25 lucene40.NewLucene40SegmentInfoFormat(), 26 nil, // liveDocsFormat 27 perfield.NewPerFieldPostingsFormat(func(field string) PostingsFormat { 28 panic("not implemented yet") 29 }), 30 perfield.NewPerFieldDocValuesFormat(func(field string) DocValuesFormat { 31 panic("not implemented yet") 32 }), 33 newReadonlyLucene42NormsFormat(), 34 ) 35 36 func init() { 37 RegisterCodec(Lucene42Codec) 38 } 39 40 type readonlyLucene42NormsFormat struct { 41 *Lucene42NormsFormat 42 } 43 44 func (f *readonlyLucene42NormsFormat) NormsConsumer(state *SegmentWriteState) (w DocValuesConsumer, err error) { 45 panic("this codec can only be used for reading") 46 } 47 48 func newReadonlyLucene42NormsFormat() *readonlyLucene42NormsFormat { 49 return &readonlyLucene42NormsFormat{ 50 NewLucene42NormsFormat(), 51 } 52 }