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) +}
