(t *testing.T)
| 31 | ) |
| 32 | |
| 33 | func TestStringIndex(t *testing.T) { |
| 34 | total := 100000 |
| 35 | numAccts := uint64(total) |
| 36 | acctsBal := make(map[int]int, numAccts) |
| 37 | var lock sync.Mutex |
| 38 | |
| 39 | var dg *dgo.Dgraph |
| 40 | err := x.RetryUntilSuccess(10, time.Second, func() error { |
| 41 | var err error |
| 42 | dg, err = testutil.DgraphClientWithGroot(testutil.GetSockAddr()) |
| 43 | return err |
| 44 | }) |
| 45 | require.NoError(t, err) |
| 46 | |
| 47 | testutil.DropAll(t, dg) |
| 48 | if err := dg.Alter(context.Background(), &api.Operation{ |
| 49 | Schema: "balance: string .", |
| 50 | }); err != nil { |
| 51 | t.Fatalf("error in setting up schema :: %v\n", err) |
| 52 | } |
| 53 | |
| 54 | if _, _, err := dg.AllocateUIDs(context.Background(), uint64(total*10)); err != nil { |
| 55 | t.Fatalf("error in assigning UIDs :: %v", err) |
| 56 | } |
| 57 | |
| 58 | // first insert bank accounts |
| 59 | fmt.Println("inserting accounts") |
| 60 | for i := 1; i <= int(numAccts); { |
| 61 | bb := &bytes.Buffer{} |
| 62 | for j := 0; j < 10000; j++ { |
| 63 | acctsBal[i] = rand.Intn(total * 100) |
| 64 | _, err := bb.WriteString(fmt.Sprintf("<%v> <balance> \"%v\" .\n", i, acctsBal[i])) |
| 65 | if err != nil { |
| 66 | t.Fatalf("error in mutation %v\n", err) |
| 67 | } |
| 68 | i++ |
| 69 | } |
| 70 | if err := testutil.RetryMutation(dg, &api.Mutation{ |
| 71 | CommitNow: true, |
| 72 | SetNquads: bb.Bytes(), |
| 73 | }); err != nil { |
| 74 | t.Fatalf("error in mutation :: %v", err) |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | fmt.Println("building indexes in background") |
| 79 | if err := dg.Alter(context.Background(), &api.Operation{ |
| 80 | Schema: "balance: string @index(fulltext, term, exact) .", |
| 81 | RunInBackground: true, |
| 82 | }); err != nil { |
| 83 | t.Fatalf("error in adding indexes :: %v\n", err) |
| 84 | } |
| 85 | |
| 86 | // perform mutations until ctrl+c |
| 87 | mutateUID := func(uid int) { |
| 88 | nb := rand.Intn(total * 100) |
| 89 | switch uid % 3 { |
| 90 | case 0: |
nothing calls this directly
no test coverage detected