From 5dc6599a9bfb1057bb0ea8bfe17da0bb588f0c2c Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Sat, 16 Apr 2022 01:06:05 +0200 Subject: [PATCH 1/6] Add analyzer test --- test/view_test.go | 98 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/test/view_test.go b/test/view_test.go index e6d8d34a..f96828f6 100644 --- a/test/view_test.go +++ b/test/view_test.go @@ -506,6 +506,104 @@ func TestUseArangoSearchView(t *testing.T) { } } +// TestUseArangoSearchViewWithPipelineAnalyzer tries to create a view and analyzer and then actually use it in an AQL query. +func TestUseArangoSearchViewWithPipelineAnalyzer(t *testing.T) { + ctx := context.Background() + // don't use disallowUnknownFields in this test - we have here custom structs defined + c := createClient(t, true, false) + skipBelowVersion(c, "3.8", t) + db := ensureDatabase(nil, c, "view_with_pipeline_test", nil, t) + col := ensureCollection(ctx, db, "some_collection_with_analyzer", nil, t) + + analyzer := driver.ArangoSearchAnalyzerDefinition{ + Name: "custom_analyzer", + Type: driver.ArangoSearchAnalyzerTypePipeline, + Properties: driver.ArangoSearchAnalyzerProperties{ + Pipeline: []driver.ArangoSearchAnalyzerPipeline{ + { + Type: driver.ArangoSearchAnalyzerTypeNGram, + Properties: driver.ArangoSearchAnalyzerProperties{ + Min: newInt64(2), + Max: newInt64(2), + PreserveOriginal: newBool(false), + StreamType: newArangoSearchNGramStreamType(driver.ArangoSearchNGramStreamUTF8), + }, + }, + { + Type: driver.ArangoSearchAnalyzerTypeNorm, + Properties: driver.ArangoSearchAnalyzerProperties{ + Locale: "en", + Case: driver.ArangoSearchCaseLower, + }, + }, + }, + }, + Features: []driver.ArangoSearchAnalyzerFeature{ + driver.ArangoSearchAnalyzerFeatureFrequency, + driver.ArangoSearchAnalyzerFeaturePosition, + driver.ArangoSearchAnalyzerFeatureNorm, + }, + } + existed, _, err := db.EnsureAnalyzer(ctx, analyzer) + require.NoError(t, err) + require.False(t, existed) + + ensureArangoSearchView(ctx, db, "some_view", &driver.ArangoSearchViewProperties{ + Links: driver.ArangoSearchLinks{ + "some_collection": driver.ArangoSearchElementProperties{ + Fields: driver.ArangoSearchFields{ + "name": driver.ArangoSearchElementProperties{ + Analyzers: []string{"custom_analyzer"}, + }, + }, + }, + }, + }, t) + + docs := []UserDoc{ + UserDoc{ + "John", + 23, + }, + UserDoc{ + "Alice", + 12, + }, + UserDoc{ + "Helmut", + 17, + }, + } + + _, errs, err := col.CreateDocuments(ctx, docs) + if err != nil { + t.Fatalf("Failed to create new documents: %s", describe(err)) + } else if err := errs.FirstNonNil(); err != nil { + t.Fatalf("Expected no errors, got first: %s", describe(err)) + } + + // now access it via AQL with waitForSync + { + cur, err := db.Query(driver.WithQueryCount(ctx), `FOR doc IN some_view SEARCH NGRAM_MATCH(doc.name, 'john', 0.75, 'custom_analyzer') OPTIONS {waitForSync:true} RETURN doc`, nil) + + if err != nil { + t.Fatalf("Failed to query data using arangodsearch: %s", describe(err)) + } else if cur.Count() != 1 || !cur.HasMore() { + t.Fatalf("Wrong number of return values: expected 1, found %d", cur.Count()) + } + + var doc UserDoc + _, err = cur.ReadDocument(ctx, &doc) + if err != nil { + t.Fatalf("Failed to read document: %s", describe(err)) + } + + if doc.Name != "John" { + t.Fatalf("Expected result `John`, found `%s`", doc.Name) + } + } +} + // TestGetArangoSearchView creates an arangosearch view and then gets it again. func TestArangoSearchViewProperties35(t *testing.T) { ctx := context.Background() From 2cd12a870f5018655ed16f415146418b4dc463d5 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Tue, 5 Jul 2022 13:32:26 +0200 Subject: [PATCH 2/6] Fix failing test --- test/view_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/view_test.go b/test/view_test.go index f96828f6..57cdd64f 100644 --- a/test/view_test.go +++ b/test/view_test.go @@ -548,9 +548,9 @@ func TestUseArangoSearchViewWithPipelineAnalyzer(t *testing.T) { require.NoError(t, err) require.False(t, existed) - ensureArangoSearchView(ctx, db, "some_view", &driver.ArangoSearchViewProperties{ + ensureArangoSearchView(ctx, db, "some_view_with_analyzer", &driver.ArangoSearchViewProperties{ Links: driver.ArangoSearchLinks{ - "some_collection": driver.ArangoSearchElementProperties{ + "some_collection_with_analyzer": driver.ArangoSearchElementProperties{ Fields: driver.ArangoSearchFields{ "name": driver.ArangoSearchElementProperties{ Analyzers: []string{"custom_analyzer"}, @@ -584,7 +584,7 @@ func TestUseArangoSearchViewWithPipelineAnalyzer(t *testing.T) { // now access it via AQL with waitForSync { - cur, err := db.Query(driver.WithQueryCount(ctx), `FOR doc IN some_view SEARCH NGRAM_MATCH(doc.name, 'john', 0.75, 'custom_analyzer') OPTIONS {waitForSync:true} RETURN doc`, nil) + cur, err := db.Query(driver.WithQueryCount(ctx), `FOR doc IN some_view_with_analyzer SEARCH NGRAM_MATCH(doc.name, 'john', 0.75, 'custom_analyzer') OPTIONS {waitForSync:true} RETURN doc`, nil) if err != nil { t.Fatalf("Failed to query data using arangodsearch: %s", describe(err)) From 5ce2c3d1f1b9409f2ccb173e04ec03765941b898 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Fri, 8 Jul 2022 12:36:15 +0200 Subject: [PATCH 3/6] test --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 277fb840..bec3966e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ before_install: travis_terminate 1 fi + services: - docker From 3f258b8040317fe7825b0b9223f97ecf7d36bd40 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Fri, 8 Jul 2022 12:37:45 +0200 Subject: [PATCH 4/6] test --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index bec3966e..277fb840 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,6 @@ before_install: travis_terminate 1 fi - services: - docker From 2337b96fb784a107b847f608eb9ece519dd24473 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Mon, 11 Jul 2022 15:49:24 +0200 Subject: [PATCH 5/6] test --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 277fb840..f782580d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,7 @@ services: language: go + env: - TEST_SUITE=run-unit-tests GOIMAGE=gcr.io/gcr-for-testing/golang:1.17.6 ALWAYS=1 - TEST_SUITE=run-tests-single GOIMAGE=gcr.io/gcr-for-testing/golang:1.17.6 STARTER=gcr.io/gcr-for-testing/arangodb/arangodb-starter:latest ALPINE_IMAGE=gcr.io/gcr-for-testing/alpine:3.4 ARANGODB=eu.gcr.io/arangodb-ci/official/arangodb/arangodb:3.6.16 From 028a51b103bb074011646b14084216a35f13d594 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Mon, 18 Jul 2022 13:58:20 +0200 Subject: [PATCH 6/6] revert --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f782580d..277fb840 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,6 @@ services: language: go - env: - TEST_SUITE=run-unit-tests GOIMAGE=gcr.io/gcr-for-testing/golang:1.17.6 ALWAYS=1 - TEST_SUITE=run-tests-single GOIMAGE=gcr.io/gcr-for-testing/golang:1.17.6 STARTER=gcr.io/gcr-for-testing/arangodb/arangodb-starter:latest ALPINE_IMAGE=gcr.io/gcr-for-testing/alpine:3.4 ARANGODB=eu.gcr.io/arangodb-ci/official/arangodb/arangodb:3.6.16