Tune and test HighlightReader Go bindings.

Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/a405c397
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/a405c397
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/a405c397

Branch: refs/heads/master
Commit: a405c39703da14ede15b1b20a54bf63165b32df5
Parents: 6deeba8
Author: Marvin Humphrey <[email protected]>
Authored: Thu Dec 10 17:05:05 2015 -0800
Committer: Marvin Humphrey <[email protected]>
Committed: Thu Dec 10 18:22:54 2015 -0800

----------------------------------------------------------------------
 go/build.go           |  4 ++++
 go/lucy/index.go      | 10 ++++++++++
 go/lucy/index_test.go | 14 ++++++++++++++
 3 files changed, 28 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/a405c397/go/build.go
----------------------------------------------------------------------
diff --git a/go/build.go b/go/build.go
index 30a4703..a730160 100644
--- a/go/build.go
+++ b/go/build.go
@@ -210,6 +210,10 @@ func specClasses(parcel *cfc.Parcel) {
        docReaderBinding.SpecMethod("Fetch_Doc", "FetchDoc(int32) (HitDoc, 
error)")
        docReaderBinding.Register()
 
+       hlReaderBinding := cfc.NewGoClass(parcel, 
"Lucy::Index::HighlightReader")
+       hlReaderBinding.SpecMethod("Fetch_Doc_Vec", "FetchDocVec(int32) 
(DocVector, error)")
+       hlReaderBinding.Register()
+
        bgMergerBinding := cfc.NewGoClass(parcel, 
"Lucy::Index::BackgroundMerger")
        bgMergerBinding.SpecMethod("Prepare_Commit", "PrepareCommit() error")
        bgMergerBinding.SpecMethod("Commit", "Commit() error")

http://git-wip-us.apache.org/repos/asf/lucy/blob/a405c397/go/lucy/index.go
----------------------------------------------------------------------
diff --git a/go/lucy/index.go b/go/lucy/index.go
index 67d4b47..09ad6ec 100644
--- a/go/lucy/index.go
+++ b/go/lucy/index.go
@@ -21,6 +21,7 @@ package lucy
 #include "Lucy/Index/IndexReader.h"
 #include "Lucy/Index/DataReader.h"
 #include "Lucy/Index/DocReader.h"
+#include "Lucy/Index/HighlightReader.h"
 #include "Lucy/Index/IndexManager.h"
 #include "Lucy/Index/BackgroundMerger.h"
 #include "Lucy/Index/TermVector.h"
@@ -484,6 +485,15 @@ func (d *DocReaderIMP) FetchDoc(docID int32) (doc HitDoc, 
err error) {
        return doc, err
 }
 
+func (h *HighlightReaderIMP) FetchDocVec(docID int32) (retval DocVector, err 
error) {
+       err = clownfish.TrapErr(func() {
+               self := (*C.lucy_HighlightReader)(clownfish.Unwrap(h, "h"))
+               retvalCF := C.LUCY_HLReader_Fetch_Doc_Vec(self, 
C.int32_t(docID))
+               retval = WRAPDocVector(unsafe.Pointer(retvalCF))
+       })
+       return retval, err
+}
+
 func OpenIndexReader(index interface{}, snapshot Snapshot, manager 
IndexManager) (retval IndexReader, err error) {
        err = clownfish.TrapErr(func() {
                indexC := (*C.cfish_Obj)(clownfish.GoToClownfish(index, 
unsafe.Pointer(C.CFISH_OBJ), false))

http://git-wip-us.apache.org/repos/asf/lucy/blob/a405c397/go/lucy/index_test.go
----------------------------------------------------------------------
diff --git a/go/lucy/index_test.go b/go/lucy/index_test.go
index e44bb09..e75ede4 100644
--- a/go/lucy/index_test.go
+++ b/go/lucy/index_test.go
@@ -819,3 +819,17 @@ func TestPolyDocReaderMisc(t *testing.T) {
        }
        runDataReaderCommon(t, reader, true)
 }
+
+func TestHighlightReaderMisc(t *testing.T) {
+       folder := createTestIndex("a", "b", "c")
+       ixReader, _ := OpenIndexReader(folder, nil, nil)
+       segReaders := ixReader.SegReaders()
+       reader := 
segReaders[0].Fetch("Lucy::Index::HighlightReader").(HighlightReader)
+       if got, err := reader.FetchDocVec(2); got == nil || err != nil {
+               t.Errorf("FetchDocVec: %v", err)
+       }
+       if got, err := reader.FetchDocVec(4); got != nil || err == nil {
+               t.Errorf("FetchDocVec catch error: %#v", got)
+       }
+       runDataReaderCommon(t, reader, true)
+}

Reply via email to