@opra/elastic 1.9.1 → 1.9.3
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.
|
@@ -201,13 +201,10 @@ class ElasticEntityService extends elastic_service_js_1.ElasticService {
|
|
|
201
201
|
? { ids: { values: [command.documentId] } }
|
|
202
202
|
: undefined,
|
|
203
203
|
options?.filter,
|
|
204
|
-
options?.request?.query,
|
|
204
|
+
// options?.request?.query,
|
|
205
205
|
]);
|
|
206
|
-
let query =
|
|
207
|
-
|
|
208
|
-
...filterQuery,
|
|
209
|
-
};
|
|
210
|
-
if (!Object.keys(query).length)
|
|
206
|
+
let query = this._mergeQueries(options?.request?.query, filterQuery);
|
|
207
|
+
if (!(query && Object.keys(query).length))
|
|
211
208
|
query = { match_all: {} };
|
|
212
209
|
const request = {
|
|
213
210
|
from: options?.skip,
|
|
@@ -417,6 +414,46 @@ class ElasticEntityService extends elastic_service_js_1.ElasticService {
|
|
|
417
414
|
throw e;
|
|
418
415
|
}
|
|
419
416
|
}
|
|
417
|
+
_mergeQueries(requestQuery, filterQuery) {
|
|
418
|
+
if (requestQuery) {
|
|
419
|
+
let subQuery = false;
|
|
420
|
+
if (requestQuery.function_score) {
|
|
421
|
+
subQuery = true;
|
|
422
|
+
if (Array.isArray(requestQuery.function_score)) {
|
|
423
|
+
requestQuery.function_score.forEach(item => {
|
|
424
|
+
item.filter = this._mergeQueries(item.filter, filterQuery);
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
requestQuery.function_score.query = this._mergeQueries(requestQuery.function_score.query, filterQuery);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
if (requestQuery.dis_max) {
|
|
432
|
+
subQuery = true;
|
|
433
|
+
requestQuery.dis_max.queries?.map(q => this._mergeQueries(q, filterQuery));
|
|
434
|
+
}
|
|
435
|
+
if (requestQuery.constant_score) {
|
|
436
|
+
subQuery = true;
|
|
437
|
+
requestQuery.constant_score.filter = this._mergeQueries(requestQuery.constant_score.filter, filterQuery);
|
|
438
|
+
}
|
|
439
|
+
if (requestQuery.has_child) {
|
|
440
|
+
subQuery = true;
|
|
441
|
+
requestQuery.has_child.query = this._mergeQueries(requestQuery.has_child.query, filterQuery);
|
|
442
|
+
}
|
|
443
|
+
if (requestQuery.has_parent) {
|
|
444
|
+
subQuery = true;
|
|
445
|
+
requestQuery.has_parent.query = this._mergeQueries(requestQuery.has_parent.query, filterQuery);
|
|
446
|
+
}
|
|
447
|
+
if (requestQuery.script_score) {
|
|
448
|
+
subQuery = true;
|
|
449
|
+
requestQuery.script_score.query = this._mergeQueries(requestQuery.script_score.query, filterQuery);
|
|
450
|
+
}
|
|
451
|
+
return subQuery
|
|
452
|
+
? requestQuery
|
|
453
|
+
: elastic_adapter_js_1.ElasticAdapter.prepareFilter([requestQuery, filterQuery]);
|
|
454
|
+
}
|
|
455
|
+
return filterQuery;
|
|
456
|
+
}
|
|
420
457
|
async _beforeCreate(
|
|
421
458
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
422
459
|
command) {
|
|
@@ -198,13 +198,10 @@ export class ElasticEntityService extends ElasticService {
|
|
|
198
198
|
? { ids: { values: [command.documentId] } }
|
|
199
199
|
: undefined,
|
|
200
200
|
options?.filter,
|
|
201
|
-
options?.request?.query,
|
|
201
|
+
// options?.request?.query,
|
|
202
202
|
]);
|
|
203
|
-
let query =
|
|
204
|
-
|
|
205
|
-
...filterQuery,
|
|
206
|
-
};
|
|
207
|
-
if (!Object.keys(query).length)
|
|
203
|
+
let query = this._mergeQueries(options?.request?.query, filterQuery);
|
|
204
|
+
if (!(query && Object.keys(query).length))
|
|
208
205
|
query = { match_all: {} };
|
|
209
206
|
const request = {
|
|
210
207
|
from: options?.skip,
|
|
@@ -414,6 +411,46 @@ export class ElasticEntityService extends ElasticService {
|
|
|
414
411
|
throw e;
|
|
415
412
|
}
|
|
416
413
|
}
|
|
414
|
+
_mergeQueries(requestQuery, filterQuery) {
|
|
415
|
+
if (requestQuery) {
|
|
416
|
+
let subQuery = false;
|
|
417
|
+
if (requestQuery.function_score) {
|
|
418
|
+
subQuery = true;
|
|
419
|
+
if (Array.isArray(requestQuery.function_score)) {
|
|
420
|
+
requestQuery.function_score.forEach(item => {
|
|
421
|
+
item.filter = this._mergeQueries(item.filter, filterQuery);
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
requestQuery.function_score.query = this._mergeQueries(requestQuery.function_score.query, filterQuery);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
if (requestQuery.dis_max) {
|
|
429
|
+
subQuery = true;
|
|
430
|
+
requestQuery.dis_max.queries?.map(q => this._mergeQueries(q, filterQuery));
|
|
431
|
+
}
|
|
432
|
+
if (requestQuery.constant_score) {
|
|
433
|
+
subQuery = true;
|
|
434
|
+
requestQuery.constant_score.filter = this._mergeQueries(requestQuery.constant_score.filter, filterQuery);
|
|
435
|
+
}
|
|
436
|
+
if (requestQuery.has_child) {
|
|
437
|
+
subQuery = true;
|
|
438
|
+
requestQuery.has_child.query = this._mergeQueries(requestQuery.has_child.query, filterQuery);
|
|
439
|
+
}
|
|
440
|
+
if (requestQuery.has_parent) {
|
|
441
|
+
subQuery = true;
|
|
442
|
+
requestQuery.has_parent.query = this._mergeQueries(requestQuery.has_parent.query, filterQuery);
|
|
443
|
+
}
|
|
444
|
+
if (requestQuery.script_score) {
|
|
445
|
+
subQuery = true;
|
|
446
|
+
requestQuery.script_score.query = this._mergeQueries(requestQuery.script_score.query, filterQuery);
|
|
447
|
+
}
|
|
448
|
+
return subQuery
|
|
449
|
+
? requestQuery
|
|
450
|
+
: ElasticAdapter.prepareFilter([requestQuery, filterQuery]);
|
|
451
|
+
}
|
|
452
|
+
return filterQuery;
|
|
453
|
+
}
|
|
417
454
|
async _beforeCreate(
|
|
418
455
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
419
456
|
command) {
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/elastic",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.3",
|
|
4
4
|
"description": "Opra Elastic Search adapter package",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@jsopen/objects": "^1.5.0",
|
|
9
9
|
"tslib": "^2.8.1",
|
|
10
|
-
"valgen": "^5.
|
|
10
|
+
"valgen": "^5.13.0"
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
13
13
|
"@elastic/elasticsearch": ">=8.7.0 <9",
|
|
14
|
-
"@opra/common": "^1.9.
|
|
15
|
-
"@opra/core": "^1.9.
|
|
14
|
+
"@opra/common": "^1.9.3",
|
|
15
|
+
"@opra/core": "^1.9.3"
|
|
16
16
|
},
|
|
17
17
|
"type": "module",
|
|
18
18
|
"exports": {
|
|
@@ -278,6 +278,7 @@ export declare class ElasticEntityService<T extends object = any> extends Elasti
|
|
|
278
278
|
*/
|
|
279
279
|
getOutputCodec(operation: string): IsObject.Validator<T>;
|
|
280
280
|
protected _executeCommand(command: ElasticEntityService.CommandInfo, commandFn: () => any): Promise<any>;
|
|
281
|
+
protected _mergeQueries(requestQuery?: estypes.QueryDslQueryContainer, filterQuery?: estypes.QueryDslQueryContainer): estypes.QueryDslQueryContainer | undefined;
|
|
281
282
|
protected _beforeCreate(command: ElasticEntityService.CreateCommand): Promise<void>;
|
|
282
283
|
protected _beforeUpdate(command: ElasticEntityService.UpdateCommand<T>): Promise<void>;
|
|
283
284
|
protected _beforeUpdateMany(command: ElasticEntityService.UpdateCommand<T>): Promise<void>;
|