You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2015/09/28 21:52:19 UTC

[03/14] lucy git commit: Tune and Test SeriesMatcher Go binding.

Tune and Test SeriesMatcher Go binding.


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

Branch: refs/heads/master
Commit: b8b4b8eff29ada478c0ae029c0d6673741674a70
Parents: 79a7769
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Thu Sep 10 18:37:38 2015 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Tue Sep 15 15:54:50 2015 -0700

----------------------------------------------------------------------
 go/build.go            |  4 ++++
 go/lucy/search.go      | 12 ++++++++++++
 go/lucy/search_test.go |  8 ++++++++
 3 files changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/b8b4b8ef/go/build.go
----------------------------------------------------------------------
diff --git a/go/build.go b/go/build.go
index 7596f7b..10ec5cf 100644
--- a/go/build.go
+++ b/go/build.go
@@ -180,6 +180,10 @@ func specClasses(parcel *cfc.Parcel) {
 	orScorerBinding.SetSuppressCtor(true)
 	orScorerBinding.Register()
 
+	seriesMatcherBinding := cfc.NewGoClass(parcel, "Lucy::Search::SeriesMatcher")
+	seriesMatcherBinding.SetSuppressCtor(true)
+	seriesMatcherBinding.Register()
+
 	bitVecBinding := cfc.NewGoClass(parcel, "Lucy::Object::BitVector")
 	bitVecBinding.SpecMethod("To_Array", "ToArray() []bool")
 	bitVecBinding.Register()

http://git-wip-us.apache.org/repos/asf/lucy/blob/b8b4b8ef/go/lucy/search.go
----------------------------------------------------------------------
diff --git a/go/lucy/search.go b/go/lucy/search.go
index 2785d51..18ac6bc 100644
--- a/go/lucy/search.go
+++ b/go/lucy/search.go
@@ -26,6 +26,7 @@ package lucy
 #include "Lucy/Search/ORQuery.h"
 #include "Lucy/Search/ANDMatcher.h"
 #include "Lucy/Search/ORMatcher.h"
+#include "Lucy/Search/SeriesMatcher.h"
 #include "Lucy/Document/HitDoc.h"
 #include "LucyX/Search/MockMatcher.h"
 #include "Clownfish/Blob.h"
@@ -226,6 +227,17 @@ func NewORScorer(children []Matcher, sim Similarity) ORScorer {
 	return WRAPORScorer(unsafe.Pointer(cfObj))
 }
 
+func NewSeriesMatcher(matchers []Matcher, offsets []int32) SeriesMatcher {
+	vec := clownfish.NewVector(len(matchers))
+	for _, child := range matchers {
+		vec.Push(child)
+	}
+	i32arr := NewI32Array(offsets)
+	cfObj := C.lucy_SeriesMatcher_new(((*C.cfish_Vector)(clownfish.Unwrap(vec, "matchers"))),
+		((*C.lucy_I32Array)(clownfish.Unwrap(i32arr, "offsets"))))
+	return WRAPSeriesMatcher(unsafe.Pointer(cfObj))
+}
+
 func newMockMatcher(docIDs []int32, scores []float32) MockMatcher {
 	docIDsconv := NewI32Array(docIDs)
 	docIDsCF := (*C.lucy_I32Array)(unsafe.Pointer(docIDsconv.TOPTR()))

http://git-wip-us.apache.org/repos/asf/lucy/blob/b8b4b8ef/go/lucy/search_test.go
----------------------------------------------------------------------
diff --git a/go/lucy/search_test.go b/go/lucy/search_test.go
index 492ab1f..83fdc71 100644
--- a/go/lucy/search_test.go
+++ b/go/lucy/search_test.go
@@ -319,3 +319,11 @@ func TestNOTMatcherBasics(t *testing.T) {
 	matcher := NewANDMatcher([]Matcher{a, notB}, nil)
 	checkMatcher(t, matcher, false)
 }
+
+func TestSeriesMatcherBasics(t *testing.T) {
+	a := newMockMatcher([]int32{42}, nil)
+	b := newMockMatcher([]int32{1, 4}, nil)
+	c := newMockMatcher([]int32{20}, nil)
+	matcher := NewSeriesMatcher([]Matcher{a, b, c}, []int32{0, 42, 80})
+	checkMatcher(t, matcher, false)
+}