annosearch 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/search.js +13 -6
- package/dist/search.js.map +1 -1
- package/dist/server.js +6 -9
- package/dist/server.js.map +1 -1
- package/package.json +3 -3
package/dist/search.js
CHANGED
|
@@ -35,9 +35,15 @@ function buildUserQueryFromString(userString) {
|
|
|
35
35
|
const users = userString.split(" ");
|
|
36
36
|
// Map each user into a Quickwit-compatible query fragment
|
|
37
37
|
return users
|
|
38
|
-
.map(user => `(creator:"${user}" OR creator.
|
|
38
|
+
.map(user => `(creator:"${user}" OR creator.id:"${user}")`)
|
|
39
39
|
.join(" OR ");
|
|
40
40
|
}
|
|
41
|
+
function buildQFromString(qString) {
|
|
42
|
+
const terms = qString.split(" ");
|
|
43
|
+
return terms
|
|
44
|
+
.map(term => `(body.value:"${term}")`)
|
|
45
|
+
.join(" AND ");
|
|
46
|
+
}
|
|
41
47
|
function searchIndex(indexId, q, motivation, maxHits, page, searchUrl, date, user) {
|
|
42
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
49
|
const startOffset = page * maxHits;
|
|
@@ -48,13 +54,14 @@ function searchIndex(indexId, q, motivation, maxHits, page, searchUrl, date, use
|
|
|
48
54
|
(0, validate_1.validateOffset)(startOffset);
|
|
49
55
|
(0, validate_1.validateMotivation)(motivation);
|
|
50
56
|
(0, validate_1.validateUser)(user);
|
|
51
|
-
const qQuery =
|
|
52
|
-
const motivationQuery = motivation ? ` AND motivation
|
|
57
|
+
const qQuery = buildQFromString(q);
|
|
58
|
+
const motivationQuery = motivation ? ` AND motivation:"${motivation}"` : '';
|
|
53
59
|
const dateQuery = date ? ` AND (${buildDateQueryFromString(date)})` : '';
|
|
54
60
|
const userQuery = user ? ` AND (${buildUserQueryFromString(user)})` : '';
|
|
55
|
-
|
|
61
|
+
const fullQuery = `${qQuery}${motivationQuery}${dateQuery}${userQuery}`;
|
|
62
|
+
console.log(`Constructed query: ${fullQuery}`);
|
|
56
63
|
const response = yield quickwitClient.post(`${indexId}/search`, {
|
|
57
|
-
query:
|
|
64
|
+
query: fullQuery,
|
|
58
65
|
max_hits: maxHits,
|
|
59
66
|
start_offset: startOffset,
|
|
60
67
|
});
|
|
@@ -62,7 +69,7 @@ function searchIndex(indexId, q, motivation, maxHits, page, searchUrl, date, use
|
|
|
62
69
|
return (0, iiif_1.makeSearchResponse)(indexId, response.data, searchUrl, q, motivation, user, maxHits, page, date);
|
|
63
70
|
}
|
|
64
71
|
else {
|
|
65
|
-
throw new errors_1.AnnoSearchValidationError('Failed to
|
|
72
|
+
throw new errors_1.AnnoSearchValidationError('Failed to search index');
|
|
66
73
|
}
|
|
67
74
|
});
|
|
68
75
|
}
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -43,7 +43,6 @@ const utils_1 = require("./utils");
|
|
|
43
43
|
const logger_1 = __importStar(require("./logger")); // Import shared logger
|
|
44
44
|
const pino_http_1 = __importDefault(require("pino-http"));
|
|
45
45
|
const errors_1 = require("./errors");
|
|
46
|
-
const validator_1 = __importDefault(require("validator"));
|
|
47
46
|
function serve(client) {
|
|
48
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
48
|
const app = (0, express_1.default)();
|
|
@@ -52,14 +51,12 @@ function serve(client) {
|
|
|
52
51
|
app.use((0, pino_http_1.default)({ logger: logger_1.default }));
|
|
53
52
|
app.get('/:index/search', (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
54
53
|
try {
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
const date = validator_1.default.escape(req.query.date || '');
|
|
62
|
-
const user = validator_1.default.escape(req.query.user || '');
|
|
54
|
+
const index = req.params.index || '';
|
|
55
|
+
const q = req.query.q || '';
|
|
56
|
+
const page = parseInt(req.query.page || '0', 10);
|
|
57
|
+
const motivation = req.query.motivation || '';
|
|
58
|
+
const date = req.query.date || '';
|
|
59
|
+
const user = req.query.user || '';
|
|
63
60
|
const results = yield client.searchIndex(index, q, motivation, page, date, user);
|
|
64
61
|
res.json(results);
|
|
65
62
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWlB,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWlB,sBAuCC;AAhDD,sDAA8B;AAE9B,kDAA0C,CAAC,mCAAmC;AAC9E,mCAAyC;AACzC,mDAAmD,CAAC,uBAAuB;AAC3E,0DAAiC;AACjC,qCAAmD;AAGnD,SAAsB,KAAK,CAAC,MAAkB;;QAC1C,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAE7B,GAAG,CAAC,GAAG,CAAC,IAAA,mBAAQ,EAAC,EAAE,MAAM,EAAN,gBAAM,EAAE,CAAC,CAAC,CAAC;QAE9B,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;YACzC,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAW,IAAI,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAoB,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAc,IAAI,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAc,IAAI,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,IAAA,sBAAc,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAA,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;YACnC,IAAI,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAP,sBAAO,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAA,sBAAc,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAA,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,gCAAuB,CAAC,kBAAkB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,wBAAe,CAAC,CAAC;QAEzB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACP,CAAC;CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "annosearch",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*"
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"axios": "^1.7.7",
|
|
37
37
|
"express": "^4.21.1",
|
|
38
38
|
"jest": "^29.7.0",
|
|
39
|
-
"maniiifest": "^1.3.
|
|
39
|
+
"maniiifest": "^1.3.2",
|
|
40
40
|
"pino": "^9.5.0",
|
|
41
41
|
"pino-http": "^10.3.0",
|
|
42
42
|
"pino-pretty": "^12.1.0",
|
|
43
43
|
"ts-jest": "^29.2.5",
|
|
44
|
-
"
|
|
44
|
+
"tslib": "^2.8.1",
|
|
45
45
|
"yaml": "^2.6.0",
|
|
46
46
|
"yargs": "^17.7.2"
|
|
47
47
|
}
|