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  }