Skip to content

Commit 84757ab

Browse files
authored
feat(full-text-search): remove query builder (#73)
1 parent 88629eb commit 84757ab

File tree

14 files changed

+864
-1489
lines changed

14 files changed

+864
-1489
lines changed

packages/full-text-search-language/spec/helper/create_lanuage_test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import {FullTextSearch, Tokenizer, QueryBuilder} from "../../../full-text-search/src/index";
1+
import {FullTextSearch, Tokenizer} from "../../../full-text-search/src/index";
2+
import {Query} from "../../../full-text-search/src/query_types";
23

34
export interface LanguageTestData {
45
tokenizer: Tokenizer;
@@ -16,7 +17,7 @@ export interface LanguageTestData {
1617
* @param {LanguageTestData} data - the language data
1718
*/
1819
export function createLanguageTest(language: string, data: LanguageTestData) {
19-
let assertMatches = (searcher: any, query: any, docIds: number[] = []) => {
20+
let assertMatches = (searcher: FullTextSearch, query: Query, docIds: number[] = []) => {
2021
let res = searcher.search(query);
2122
expect(Object.keys(res).length).toEqual(docIds.length);
2223
for (let i = 0; i < docIds.length; i++) {
@@ -45,8 +46,7 @@ export function createLanguageTest(language: string, data: LanguageTestData) {
4546
for (let i = 0; i < data.tests.length; i++) {
4647
let test = data.tests[i];
4748
it(test.what + " '" + test.search + "'", () => {
48-
let query = new QueryBuilder().match("body", test.search).build();
49-
assertMatches(fts, query, test.expected);
49+
assertMatches(fts, {query: {type: "match", field: "body", value: test.search}}, test.expected);
5050
});
5151
}
5252
});

packages/full-text-search/spec/generic/full_text_search.spec.ts

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* global describe, ddescribe, it, expect */
22
import {Loki} from "../../../loki/src/loki";
3-
import {QueryBuilder} from "../../src/query_builder";
3+
import {FuzzyQuery, Query} from "../../src/query_types";
44
import {MemoryStorage} from "../../../memory-storage/src/memory_storage";
55
import {Collection} from "../../../loki/src/collection";
66
import {FullTextSearch} from "../../src/full_text_search";
@@ -31,13 +31,12 @@ describe("full-text search", () => {
3131
});
3232

3333
it("usage", () => {
34-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(1).build();
34+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 1}};
3535
expect(coll.find({"$fts": query}).length).toBe(3);
3636
});
3737

3838
it("chained", () => {
39-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(1).build();
40-
39+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 1}};
4140
expect(
4241
coll.find({"$fts": query})).not.toEqual(
4342
coll.find({"id": {"$in": [1, 2, 3]}}));
@@ -67,7 +66,7 @@ describe("full-text search", () => {
6766
return user;
6867
});
6968

70-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(1).build();
69+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 1}};
7170
expect(coll.find({"$fts": query}).length).toBe(2);
7271
});
7372

@@ -76,7 +75,7 @@ describe("full-text search", () => {
7675
return user.name === "quak";
7776
});
7877

79-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(1).build();
78+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 1}};
8079
expect(coll.find({"$fts": query}).length).toBe(2);
8180
});
8281

@@ -90,15 +89,15 @@ describe("full-text search", () => {
9089
{name: "abcdefg", id: 4},
9190
]);
9291

93-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(1).build();
92+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 1}};
9493
expect(coll.find({"$fts": query}).length).toBe(0);
9594

96-
query = new QueryBuilder().fuzzy("name", "abcde").fuzziness(1).build();
95+
query = {query: {type: "fuzzy", field: "name", value: "abcde", fuzziness: 1}};
9796
expect(coll.find({"$fts": query}).length).toBe(3);
9897
});
9998

10099
it("sort", () => {
101-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(2).build();
100+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 2}};
102101

103102
expect(coll.chain().sortByScoring).toThrowAnyError();
104103
expect(coll.chain().getScoring).toThrowAnyError();
@@ -137,7 +136,7 @@ describe("full-text search", () => {
137136
});
138137

139138
it("explain", () => {
140-
let query = new QueryBuilder().explain(true).fuzzy("name", "quak").fuzziness(2).build();
139+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 2}, explain: true};
141140
let res = coll.chain().find({"$fts": query});
142141
expect(res.data().length).toBe(4);
143142
expect(res.getScoring()[0].explanation).toBeArrayOfObjects();
@@ -162,7 +161,7 @@ describe("full-text search", () => {
162161
return db2.loadDatabase();
163162
}).then(() => {
164163
const coll2 = db2.getCollection<User>("User");
165-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(1).build();
164+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 1}};
166165
expect(coll2.find({"$fts": query}).length).toBe(3);
167166
done();
168167
});
@@ -198,7 +197,7 @@ describe("full-text search", () => {
198197
return db2.loadDatabase({fullTextSearch: {name: tkz}});
199198
}).then(() => {
200199
const coll2 = db2.getCollection<User>("User");
201-
let query = new QueryBuilder().fuzzy("name", "quak").fuzziness(1).build();
200+
let query: Query = {query: {type: "fuzzy", field: "name", value: "quak", fuzziness: 1}};
202201
expect(coll2.find({"$fts": query}).length).toBe(3);
203202
done();
204203
});

packages/full-text-search/spec/generic/query_builder.spec.ts

-205
This file was deleted.

0 commit comments

Comments
 (0)