github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/codec/lucene410/codec.go (about)

     1  package lucene410
     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/lucene42"
     7  	"github.com/balzaczyy/golucene/core/codec/lucene46"
     8  	"github.com/balzaczyy/golucene/core/codec/lucene49"
     9  	"github.com/balzaczyy/golucene/core/codec/perfield"
    10  	. "github.com/balzaczyy/golucene/core/codec/spi"
    11  )
    12  
    13  // codec/lucene410/Lucene410Codec.java
    14  
    15  func init() {
    16  	RegisterCodec(newLucene410Codec())
    17  }
    18  
    19  /*
    20  Implements the Lucene 4.10 index format, with configuration per-field
    21  postings and docvalues format.
    22  
    23  If you want to reuse functionality of this codec in another codec,
    24  extend FilterCodec (or embeds the Codec in Go style).
    25  */
    26  type Lucene410Codec struct {
    27  	*CodecImpl
    28  }
    29  
    30  func newLucene410Codec() *Lucene410Codec {
    31  	return &Lucene410Codec{NewCodec("Lucene410",
    32  		lucene41.NewLucene41StoredFieldsFormat(),
    33  		lucene42.NewLucene42TermVectorsFormat(),
    34  		lucene46.NewLucene46FieldInfosFormat(),
    35  		lucene46.NewLucene46SegmentInfoFormat(),
    36  		new(lucene40.Lucene40LiveDocsFormat),
    37  		perfield.NewPerFieldPostingsFormat(func(field string) PostingsFormat {
    38  			return LoadPostingsFormat("Lucene41")
    39  		}),
    40  		perfield.NewPerFieldDocValuesFormat(func(field string) DocValuesFormat {
    41  			panic("not implemented yet")
    42  		}),
    43  		new(lucene49.Lucene49NormsFormat),
    44  	)}
    45  }