aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/blevesearch/bleve/index.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/blevesearch/bleve/index.go')
-rw-r--r--vendor/github.com/blevesearch/bleve/index.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/blevesearch/bleve/index.go b/vendor/github.com/blevesearch/bleve/index.go
index ea7b3832ac..99357eee01 100644
--- a/vendor/github.com/blevesearch/bleve/index.go
+++ b/vendor/github.com/blevesearch/bleve/index.go
@@ -21,6 +21,7 @@ import (
"github.com/blevesearch/bleve/index"
"github.com/blevesearch/bleve/index/store"
"github.com/blevesearch/bleve/mapping"
+ "github.com/blevesearch/bleve/size"
)
// A Batch groups together multiple Index and Delete
@@ -32,6 +33,9 @@ import (
type Batch struct {
index Index
internal *index.Batch
+
+ lastDocSize uint64
+ totalSize uint64
}
// Index adds the specified index operation to the
@@ -47,9 +51,22 @@ func (b *Batch) Index(id string, data interface{}) error {
return err
}
b.internal.Update(doc)
+
+ b.lastDocSize = uint64(doc.Size() +
+ len(id) + size.SizeOfString) // overhead from internal
+ b.totalSize += b.lastDocSize
+
return nil
}
+func (b *Batch) LastDocSize() uint64 {
+ return b.lastDocSize
+}
+
+func (b *Batch) TotalDocsSize() uint64 {
+ return b.totalSize
+}
+
// IndexAdvanced adds the specified index operation to the
// batch which skips the mapping. NOTE: the bleve Index is not updated
// until the batch is executed.
@@ -102,6 +119,24 @@ func (b *Batch) Reset() {
b.internal.Reset()
}
+func (b *Batch) Merge(o *Batch) {
+ if o != nil && o.internal != nil {
+ b.internal.Merge(o.internal)
+ if o.LastDocSize() > 0 {
+ b.lastDocSize = o.LastDocSize()
+ }
+ b.totalSize = uint64(b.internal.TotalDocSize())
+ }
+}
+
+func (b *Batch) SetPersistedCallback(f index.BatchCallback) {
+ b.internal.SetPersistedCallback(f)
+}
+
+func (b *Batch) PersistedCallback() index.BatchCallback {
+ return b.internal.PersistedCallback()
+}
+
// An Index implements all the indexing and searching
// capabilities of bleve. An Index can be created
// using the New() and Open() methods.