github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/index/docFieldConsumer.go (about) 1 package index 2 3 // import ( 4 // "github.com/balzaczyy/golucene/core/index/model" 5 // ) 6 7 // type DocFieldConsumer interface { 8 // // Called when DWPT decides to create a new segment 9 // flush(fieldsToFlush map[string]DocFieldConsumerPerField, state *model.SegmentWriteState) error 10 // // Called when an aborting error is hit 11 // abort() 12 // startDocument() 13 // addField(fi *model.FieldInfo) DocFieldConsumerPerField 14 // finishDocument() error 15 // } 16 17 // /* 18 // This is a DocFieldCosumer that inverts each field, separately, from a 19 // Document, and accepts an InvertedTermsConsumer to process those terms. 20 // */ 21 // type DocInverter struct { 22 // consumer InvertedDocConsumer 23 // endConsumer InvertedDocEndConsumer 24 // docState *docState 25 // } 26 27 // func newDocInverter(docState *docState, consumer InvertedDocConsumer, 28 // endConsumer InvertedDocEndConsumer) *DocInverter { 29 30 // return &DocInverter{consumer, endConsumer, docState} 31 // } 32 33 // func (di *DocInverter) flush(fieldsToFlush map[string]DocFieldConsumerPerField, 34 // state *model.SegmentWriteState) error { 35 // childFieldsToFlush := make(map[string]InvertedDocConsumerPerField) 36 // endChildFieldsToFlush := make(map[string]InvertedDocEndConsumerPerField) 37 // for k, v := range fieldsToFlush { 38 // perField := v.(*DocInverterPerField) 39 // childFieldsToFlush[k] = perField.consumer 40 // endChildFieldsToFlush[k] = perField.endConsumer 41 // } 42 // err := di.consumer.flush(childFieldsToFlush, state) 43 // if err == nil { 44 // err = di.endConsumer.flush(endChildFieldsToFlush, state) 45 // } 46 // return err 47 // } 48 49 // func (di *DocInverter) startDocument() { 50 // di.consumer.startDocument() 51 // di.endConsumer.startDocument() 52 // } 53 54 // func (di *DocInverter) finishDocument() error { 55 // err := di.consumer.finishDocument() 56 // if err == nil { 57 // di.endConsumer.finishDocument() 58 // } 59 // return err 60 // } 61 62 // func (di *DocInverter) abort() { 63 // defer di.endConsumer.abort() 64 // di.consumer.abort() 65 // } 66 67 // func (di *DocInverter) addField(fi *model.FieldInfo) DocFieldConsumerPerField { 68 // return newDocInverterPerField(di, fi) 69 // }