@vendure/elasticsearch-plugin 1.2.2 → 1.3.0
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/lib/src/{graphql-schema-extensions.d.ts → api/api-extensions.d.ts} +1 -1
- package/lib/src/{graphql-schema-extensions.js → api/api-extensions.js} +107 -56
- package/lib/src/api/api-extensions.js.map +1 -0
- package/lib/src/{custom-mappings.resolver.d.ts → api/custom-mappings.resolver.d.ts} +1 -1
- package/lib/src/{custom-mappings.resolver.js → api/custom-mappings.resolver.js} +1 -1
- package/lib/src/api/custom-mappings.resolver.js.map +1 -0
- package/lib/src/api/custom-script-fields.resolver.d.ts +12 -0
- package/lib/src/api/custom-script-fields.resolver.js +50 -0
- package/lib/src/api/custom-script-fields.resolver.js.map +1 -0
- package/lib/src/{elasticsearch-resolver.d.ts → api/elasticsearch-resolver.d.ts} +9 -6
- package/lib/src/{elasticsearch-resolver.js → api/elasticsearch-resolver.js} +27 -3
- package/lib/src/api/elasticsearch-resolver.js.map +1 -0
- package/lib/src/build-elastic-body.js +56 -41
- package/lib/src/build-elastic-body.js.map +1 -1
- package/lib/src/constants.d.ts +0 -1
- package/lib/src/constants.js +1 -2
- package/lib/src/constants.js.map +1 -1
- package/lib/src/elasticsearch.service.d.ts +11 -2
- package/lib/src/elasticsearch.service.js +139 -68
- package/lib/src/elasticsearch.service.js.map +1 -1
- package/lib/src/{elasticsearch-index.service.d.ts → indexing/elasticsearch-index.service.d.ts} +1 -1
- package/lib/src/{elasticsearch-index.service.js → indexing/elasticsearch-index.service.js} +0 -0
- package/lib/src/indexing/elasticsearch-index.service.js.map +1 -0
- package/lib/src/{indexer.controller.d.ts → indexing/indexer.controller.d.ts} +24 -10
- package/lib/src/{indexer.controller.js → indexing/indexer.controller.js} +221 -266
- package/lib/src/indexing/indexer.controller.js.map +1 -0
- package/lib/src/{indexing-utils.d.ts → indexing/indexing-utils.d.ts} +2 -2
- package/lib/src/{indexing-utils.js → indexing/indexing-utils.js} +3 -59
- package/lib/src/indexing/indexing-utils.js.map +1 -0
- package/lib/src/options.d.ts +203 -32
- package/lib/src/options.js +5 -0
- package/lib/src/options.js.map +1 -1
- package/lib/src/plugin.d.ts +4 -2
- package/lib/src/plugin.js +31 -11
- package/lib/src/plugin.js.map +1 -1
- package/lib/src/types.d.ts +51 -13
- package/package.json +4 -4
- package/lib/src/custom-mappings.resolver.js.map +0 -1
- package/lib/src/elasticsearch-index.service.js.map +0 -1
- package/lib/src/elasticsearch-resolver.js.map +0 -1
- package/lib/src/graphql-schema-extensions.js.map +0 -1
- package/lib/src/indexer.controller.js.map +0 -1
- package/lib/src/indexing-utils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.controller.js","sourceRoot":"","sources":["../../../src/indexing/indexer.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Client } from '@elastic/elasticsearch';
|
|
2
2
|
import { DeepRequired, ID } from '@vendure/core';
|
|
3
|
-
import { ElasticsearchOptions } from '
|
|
4
|
-
export declare function createIndices(client: Client, prefix: string, indexSettings: object, indexMappingProperties: object,
|
|
3
|
+
import { ElasticsearchOptions } from '../options';
|
|
4
|
+
export declare function createIndices(client: Client, prefix: string, indexSettings: object, indexMappingProperties: object, mapAlias?: boolean, aliasPostfix?: string): Promise<void>;
|
|
5
5
|
export declare function deleteIndices(client: Client, prefix: string): Promise<void>;
|
|
6
6
|
export declare function deleteByChannel(client: Client, prefix: string, channelId: ID): Promise<void>;
|
|
7
7
|
export declare function getClient(options: Required<ElasticsearchOptions> | DeepRequired<ElasticsearchOptions>): Client;
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getIndexNameByAlias = exports.getClient = exports.deleteByChannel = exports.deleteIndices = exports.createIndices = void 0;
|
|
4
4
|
const elasticsearch_1 = require("@elastic/elasticsearch");
|
|
5
5
|
const core_1 = require("@vendure/core");
|
|
6
|
-
const constants_1 = require("
|
|
7
|
-
async function createIndices(client, prefix, indexSettings, indexMappingProperties,
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
async function createIndices(client, prefix, indexSettings, indexMappingProperties, mapAlias = true, aliasPostfix = ``) {
|
|
8
8
|
const textWithKeyword = {
|
|
9
9
|
type: 'text',
|
|
10
10
|
fields: {
|
|
@@ -15,32 +15,7 @@ async function createIndices(client, prefix, indexSettings, indexMappingProperti
|
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
17
|
const keyword = { type: 'keyword' };
|
|
18
|
-
const
|
|
19
|
-
sku: textWithKeyword,
|
|
20
|
-
slug: textWithKeyword,
|
|
21
|
-
productId: keyword,
|
|
22
|
-
channelId: keyword,
|
|
23
|
-
languageCode: keyword,
|
|
24
|
-
productName: textWithKeyword,
|
|
25
|
-
productVariantId: keyword,
|
|
26
|
-
productVariantName: textWithKeyword,
|
|
27
|
-
currencyCode: keyword,
|
|
28
|
-
description: textWithKeyword,
|
|
29
|
-
facetIds: keyword,
|
|
30
|
-
facetValueIds: keyword,
|
|
31
|
-
collectionIds: keyword,
|
|
32
|
-
collectionSlugs: keyword,
|
|
33
|
-
channelIds: keyword,
|
|
34
|
-
enabled: { type: 'boolean' },
|
|
35
|
-
productAssetId: keyword,
|
|
36
|
-
productPreview: textWithKeyword,
|
|
37
|
-
productPreviewFocalPoint: { type: 'object' },
|
|
38
|
-
productVariantAssetId: keyword,
|
|
39
|
-
productVariantPreview: textWithKeyword,
|
|
40
|
-
productVariantPreviewFocalPoint: { type: 'object' },
|
|
41
|
-
};
|
|
42
|
-
const productMappings = Object.assign(Object.assign(Object.assign({}, commonMappings), { priceMin: { type: 'long' }, priceMax: { type: 'long' }, priceWithTaxMin: { type: 'long' }, priceWithTaxMax: { type: 'long' } }), indexMappingProperties);
|
|
43
|
-
const variantMappings = Object.assign(Object.assign(Object.assign({}, commonMappings), { price: { type: 'long' }, priceWithTax: { type: 'long' } }), indexMappingProperties);
|
|
18
|
+
const variantMappings = Object.assign({ sku: textWithKeyword, slug: textWithKeyword, productId: keyword, channelId: keyword, languageCode: keyword, productName: textWithKeyword, productVariantId: keyword, productVariantName: textWithKeyword, currencyCode: keyword, description: textWithKeyword, facetIds: keyword, facetValueIds: keyword, collectionIds: keyword, collectionSlugs: keyword, channelIds: keyword, enabled: { type: 'boolean' }, productEnabled: { type: 'boolean' }, productAssetId: keyword, productPreview: textWithKeyword, productPreviewFocalPoint: { type: 'object' }, productVariantAssetId: keyword, productVariantPreview: textWithKeyword, productVariantPreviewFocalPoint: { type: 'object' }, productChannelIds: keyword, productCollectionIds: keyword, productCollectionSlugs: keyword, productFacetIds: keyword, productFacetValueIds: keyword, productPriceMax: { type: 'long' }, productPriceMin: { type: 'long' }, productPriceWithTaxMax: { type: 'long' }, productPriceWithTaxMin: { type: 'long' }, price: { type: 'long' }, priceWithTax: { type: 'long' }, inStock: { type: 'boolean' }, productInStock: { type: 'boolean' } }, indexMappingProperties);
|
|
44
19
|
const unixtimestampPostfix = new Date().getTime();
|
|
45
20
|
const createIndex = async (mappings, index, alias) => {
|
|
46
21
|
if (mapAlias) {
|
|
@@ -80,14 +55,6 @@ async function createIndices(client, prefix, indexSettings, indexMappingProperti
|
|
|
80
55
|
catch (e) {
|
|
81
56
|
core_1.Logger.error(JSON.stringify(e, null, 2), constants_1.loggerCtx);
|
|
82
57
|
}
|
|
83
|
-
try {
|
|
84
|
-
const index = prefix + constants_1.PRODUCT_INDEX_NAME + `${unixtimestampPostfix}`;
|
|
85
|
-
const alias = prefix + constants_1.PRODUCT_INDEX_NAME + aliasPostfix;
|
|
86
|
-
await createIndex(productMappings, index, alias);
|
|
87
|
-
}
|
|
88
|
-
catch (e) {
|
|
89
|
-
core_1.Logger.error(JSON.stringify(e, null, 2), constants_1.loggerCtx);
|
|
90
|
-
}
|
|
91
58
|
}
|
|
92
59
|
exports.createIndices = createIndices;
|
|
93
60
|
async function deleteIndices(client, prefix) {
|
|
@@ -99,14 +66,6 @@ async function deleteIndices(client, prefix) {
|
|
|
99
66
|
catch (e) {
|
|
100
67
|
core_1.Logger.error(e, constants_1.loggerCtx);
|
|
101
68
|
}
|
|
102
|
-
try {
|
|
103
|
-
const index = await getIndexNameByAlias(client, prefix + constants_1.PRODUCT_INDEX_NAME);
|
|
104
|
-
await client.indices.delete({ index });
|
|
105
|
-
core_1.Logger.verbose(`Deleted index "${index}"`, constants_1.loggerCtx);
|
|
106
|
-
}
|
|
107
|
-
catch (e) {
|
|
108
|
-
core_1.Logger.error(e, constants_1.loggerCtx);
|
|
109
|
-
}
|
|
110
69
|
}
|
|
111
70
|
exports.deleteIndices = deleteIndices;
|
|
112
71
|
async function deleteByChannel(client, prefix, channelId) {
|
|
@@ -125,21 +84,6 @@ async function deleteByChannel(client, prefix, channelId) {
|
|
|
125
84
|
catch (e) {
|
|
126
85
|
core_1.Logger.error(e, constants_1.loggerCtx);
|
|
127
86
|
}
|
|
128
|
-
try {
|
|
129
|
-
const index = prefix + constants_1.PRODUCT_INDEX_NAME;
|
|
130
|
-
await client.deleteByQuery({
|
|
131
|
-
index,
|
|
132
|
-
body: {
|
|
133
|
-
query: {
|
|
134
|
-
match: { channelId },
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
core_1.Logger.verbose(`Deleted index "${index}" for channel "${channelId}"`, constants_1.loggerCtx);
|
|
139
|
-
}
|
|
140
|
-
catch (e) {
|
|
141
|
-
core_1.Logger.error(e, constants_1.loggerCtx);
|
|
142
|
-
}
|
|
143
87
|
}
|
|
144
88
|
exports.deleteByChannel = deleteByChannel;
|
|
145
89
|
function getClient(options) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexing-utils.js","sourceRoot":"","sources":["../../../src/indexing/indexing-utils.ts"],"names":[],"mappings":";;;AAAA,0DAAgD;AAChD,wCAAyD;AAEzD,4CAA6D;AAItD,KAAK,UAAU,aAAa,CAC/B,MAAc,EACd,MAAc,EACd,aAAqB,EACrB,sBAA8B,EAC9B,QAAQ,GAAG,IAAI,EACf,YAAY,GAAG,EAAE;IAEjB,MAAM,eAAe,GAAG;QACpB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACJ,OAAO,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,GAAG;aACpB;SACJ;KACJ,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAEpC,MAAM,eAAe,mBACjB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,eAAe,EAC5B,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,eAAe,EACnC,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,eAAe,EAC5B,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAC5B,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EACnC,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,eAAe,EAC/B,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC5C,qBAAqB,EAAE,OAAO,EAC9B,qBAAqB,EAAE,eAAe,EACtC,+BAA+B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EACnD,iBAAiB,EAAE,OAAO,EAC1B,oBAAoB,EAAE,OAAO,EAC7B,sBAAsB,EAAE,OAAO,EAC/B,eAAe,EAAE,OAAO,EACxB,oBAAoB,EAAE,OAAO,EAC7B,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EACjC,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EACjC,sBAAsB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EACxC,sBAAsB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EACxC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EACvB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAC5B,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAChC,sBAAsB,CAC5B,CAAC;IAEF,MAAM,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAElD,MAAM,WAAW,GAAG,KAAK,EAAE,QAAsC,EAAE,KAAa,EAAE,KAAa,EAAE,EAAE;QAC/F,IAAI,QAAQ,EAAE;YACV,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,KAAK;gBACL,IAAI,EAAE;oBACF,QAAQ,EAAE;wBACN,UAAU,EAAE,QAAQ;qBACvB;oBACD,QAAQ,EAAE,aAAa;iBAC1B;aACJ,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1B,KAAK;gBACL,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;YACH,aAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,GAAG,EAAE,qBAAS,CAAC,CAAC;SACzD;aAAM;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE;oBACF,QAAQ,EAAE;wBACN,UAAU,EAAE,QAAQ;qBACvB;oBACD,QAAQ,EAAE,aAAa;iBAC1B;aACJ,CAAC,CAAC;YACH,aAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,GAAG,EAAE,qBAAS,CAAC,CAAC;SACzD;IACL,CAAC,CAAC;IAEF,IAAI;QACA,MAAM,KAAK,GAAG,MAAM,GAAG,8BAAkB,GAAG,GAAG,oBAAoB,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,GAAG,8BAAkB,GAAG,YAAY,CAAC;QAEzD,MAAM,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KACpD;IAAC,OAAO,CAAC,EAAE;QACR,aAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,qBAAS,CAAC,CAAC;KACvD;AACL,CAAC;AAnGD,sCAmGC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,MAAc;IAC9D,IAAI;QACA,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,8BAAkB,CAAC,CAAC;QAC7E,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,aAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,GAAG,EAAE,qBAAS,CAAC,CAAC;KACzD;IAAC,OAAO,CAAC,EAAE;QACR,aAAM,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAS,CAAC,CAAC;KAC9B;AACL,CAAC;AARD,sCAQC;AAEM,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,SAAa;IAC/E,IAAI;QACA,MAAM,KAAK,GAAG,MAAM,GAAG,8BAAkB,CAAC;QAC1C,MAAM,MAAM,CAAC,aAAa,CAAC;YACvB,KAAK;YACL,IAAI,EAAE;gBACF,KAAK,EAAE;oBACH,KAAK,EAAE,EAAE,SAAS,EAAE;iBACvB;aACJ;SACJ,CAAC,CAAC;QACH,aAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,iBAAiB,SAAS,GAAG,EAAE,qBAAS,CAAC,CAAC;KACnF;IAAC,OAAO,CAAC,EAAE;QACR,aAAM,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAS,CAAC,CAAC;KAC9B;AACL,CAAC;AAfD,0CAeC;AAED,SAAgB,SAAS,CACrB,OAA4E;;IAE5E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,IAAI,mCAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IAC9D,OAAO,IAAI,sBAAM,iBACb,IAAI,IAGA,OAAO,CAAC,aAAqB,EACnC,CAAC;AACP,CAAC;AAXD,8BAWC;AAEM,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,SAAiB;IACvE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzE,IAAI,UAAU,CAAC,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxC,IAAI,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACrC;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAVD,kDAUC"}
|
package/lib/src/options.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ClientOptions } from '@elastic/elasticsearch';
|
|
2
|
-
import { DeepRequired, ID, LanguageCode, Product, ProductVariant } from '@vendure/core';
|
|
3
|
-
import { CustomMapping, ElasticSearchInput } from './types';
|
|
2
|
+
import { DeepRequired, EntityRelationPaths, ID, LanguageCode, Product, ProductVariant } from '@vendure/core';
|
|
3
|
+
import { CustomMapping, CustomScriptMapping, ElasticSearchInput, GraphQlPrimitive, PrimitiveTypeVariations } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* @description
|
|
6
6
|
* Configuration options for the {@link ElasticsearchPlugin}.
|
|
@@ -110,11 +110,31 @@ export interface ElasticsearchOptions {
|
|
|
110
110
|
* }
|
|
111
111
|
* ```
|
|
112
112
|
*
|
|
113
|
+
* To reference a field defined by `customProductMappings` or `customProductVariantMappings`, you will
|
|
114
|
+
* need to prefix the name with `'product-<name>'` or `'variant-<name>'` respectively, e.g.:
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```TypeScript
|
|
118
|
+
* customProductMappings: {
|
|
119
|
+
* variantCount: {
|
|
120
|
+
* graphQlType: 'Int!',
|
|
121
|
+
* valueFn: (product, variants) => variants.length,
|
|
122
|
+
* },
|
|
123
|
+
* },
|
|
124
|
+
* indexMappingProperties: {
|
|
125
|
+
* 'product-variantCount': {
|
|
126
|
+
* type: 'integer',
|
|
127
|
+
* }
|
|
128
|
+
* }
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
113
131
|
* @since 1.2.0
|
|
114
132
|
* @default
|
|
115
133
|
* {}
|
|
116
134
|
*/
|
|
117
|
-
indexMappingProperties?:
|
|
135
|
+
indexMappingProperties?: {
|
|
136
|
+
[indexName: string]: object;
|
|
137
|
+
};
|
|
118
138
|
/**
|
|
119
139
|
* @description
|
|
120
140
|
* Batch size for bulk operations (e.g. when rebuilding the indices).
|
|
@@ -125,7 +145,7 @@ export interface ElasticsearchOptions {
|
|
|
125
145
|
batchSize?: number;
|
|
126
146
|
/**
|
|
127
147
|
* @description
|
|
128
|
-
* Configuration of the internal
|
|
148
|
+
* Configuration of the internal Elasticsearch query.
|
|
129
149
|
*/
|
|
130
150
|
searchConfig?: SearchConfig;
|
|
131
151
|
/**
|
|
@@ -134,8 +154,8 @@ export interface ElasticsearchOptions {
|
|
|
134
154
|
* Elasticsearch index and expose that data via the SearchResult GraphQL type,
|
|
135
155
|
* adding a new `customMappings` field.
|
|
136
156
|
*
|
|
137
|
-
* The `graphQlType` property may be one of `String`, `Int`, `Float`, `Boolean`
|
|
138
|
-
* can be appended with a `!` to indicate non-nullable fields.
|
|
157
|
+
* The `graphQlType` property may be one of `String`, `Int`, `Float`, `Boolean`, `ID` or list
|
|
158
|
+
* versions thereof (`[String!]` etc) and can be appended with a `!` to indicate non-nullable fields.
|
|
139
159
|
*
|
|
140
160
|
* This config option defines custom mappings which are accessible when the "groupByProduct"
|
|
141
161
|
* input options is set to `true`.
|
|
@@ -202,6 +222,93 @@ export interface ElasticsearchOptions {
|
|
|
202
222
|
customProductVariantMappings?: {
|
|
203
223
|
[fieldName: string]: CustomMapping<[ProductVariant, LanguageCode]>;
|
|
204
224
|
};
|
|
225
|
+
/**
|
|
226
|
+
* @description
|
|
227
|
+
* If set to `true`, updates to Products, ProductVariants and Collections will not immediately
|
|
228
|
+
* trigger an update to the search index. Instead, all these changes will be buffered and will
|
|
229
|
+
* only be run via a call to the `runPendingSearchIndexUpdates` mutation in the Admin API.
|
|
230
|
+
*
|
|
231
|
+
* This is very useful for installations with a large number of ProductVariants and/or
|
|
232
|
+
* Collections, as the buffering allows better control over when these expensive jobs are run,
|
|
233
|
+
* and also performs optimizations to minimize the amount of work that needs to be performed by
|
|
234
|
+
* the worker.
|
|
235
|
+
*
|
|
236
|
+
* @since 1.3.0
|
|
237
|
+
* @default false
|
|
238
|
+
*/
|
|
239
|
+
bufferUpdates?: boolean;
|
|
240
|
+
/**
|
|
241
|
+
* @description
|
|
242
|
+
* Additional product relations that will be fetched from DB while reindexing. This can be used
|
|
243
|
+
* in combination with `customProductMappings` to ensure that the required relations are joined
|
|
244
|
+
* before the `product` object is passed to the `valueFn`.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```TypeScript
|
|
248
|
+
* {
|
|
249
|
+
* hydrateProductRelations: ['assets.asset'],
|
|
250
|
+
* customProductMappings: {
|
|
251
|
+
* assetPreviews: {
|
|
252
|
+
* graphQlType: '[String!]',
|
|
253
|
+
* // Here we can be sure that the `product.assets` array is populated
|
|
254
|
+
* // with an Asset object
|
|
255
|
+
* valueFn: (product) => product.assets.map(asset => asset.preview),
|
|
256
|
+
* }
|
|
257
|
+
* }
|
|
258
|
+
* }
|
|
259
|
+
* ```
|
|
260
|
+
*
|
|
261
|
+
* @default []
|
|
262
|
+
* @since 1.3.0
|
|
263
|
+
*/
|
|
264
|
+
hydrateProductRelations?: Array<EntityRelationPaths<Product>>;
|
|
265
|
+
/**
|
|
266
|
+
* @description
|
|
267
|
+
* Additional variant relations that will be fetched from DB while reindexing. See
|
|
268
|
+
* `hydrateProductRelations` for more explanation and a usage example.
|
|
269
|
+
*
|
|
270
|
+
* @default []
|
|
271
|
+
* @since 1.3.0
|
|
272
|
+
*/
|
|
273
|
+
hydrateProductVariantRelations?: Array<EntityRelationPaths<ProductVariant>>;
|
|
274
|
+
/**
|
|
275
|
+
* @description
|
|
276
|
+
* Allows the `SearchInput` type to be extended with new input fields. This allows arbitrary
|
|
277
|
+
* data to be passed in, which can then be used e.g. in the `mapQuery()` function or
|
|
278
|
+
* custom `scriptFields` functions.
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* ```TypeScript
|
|
282
|
+
* extendSearchInputType: {
|
|
283
|
+
* longitude: 'Float',
|
|
284
|
+
* latitude: 'Float',
|
|
285
|
+
* radius: 'Float',
|
|
286
|
+
* }
|
|
287
|
+
* ```
|
|
288
|
+
*
|
|
289
|
+
* This allows the search query to include these new fields:
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```GraphQl
|
|
293
|
+
* query {
|
|
294
|
+
* search(input: {
|
|
295
|
+
* longitude: 101.7117,
|
|
296
|
+
* latitude: 3.1584,
|
|
297
|
+
* radius: 50.00
|
|
298
|
+
* }) {
|
|
299
|
+
* items {
|
|
300
|
+
* productName
|
|
301
|
+
* }
|
|
302
|
+
* }
|
|
303
|
+
* }
|
|
304
|
+
* ```
|
|
305
|
+
*
|
|
306
|
+
* @default {}
|
|
307
|
+
* @since 1.3.0
|
|
308
|
+
*/
|
|
309
|
+
extendSearchInputType?: {
|
|
310
|
+
[name: string]: PrimitiveTypeVariations<GraphQlPrimitive>;
|
|
311
|
+
};
|
|
205
312
|
}
|
|
206
313
|
/**
|
|
207
314
|
* @description
|
|
@@ -302,36 +409,100 @@ export interface SearchConfig {
|
|
|
302
409
|
* @example
|
|
303
410
|
* ```TypeScript
|
|
304
411
|
* mapQuery: (query, input, searchConfig, channelId, enabledOnly){
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
412
|
+
* if(query.bool.must){
|
|
413
|
+
* delete query.bool.must;
|
|
414
|
+
* }
|
|
415
|
+
* query.bool.should = [
|
|
416
|
+
* {
|
|
417
|
+
* query_string: {
|
|
418
|
+
* query: "*" + term + "*",
|
|
419
|
+
* fields: [
|
|
420
|
+
* `productName^${searchConfig.boostFields.productName}`,
|
|
421
|
+
* `productVariantName^${searchConfig.boostFields.productVariantName}`,
|
|
422
|
+
* ]
|
|
423
|
+
* }
|
|
424
|
+
* },
|
|
425
|
+
* {
|
|
426
|
+
* multi_match: {
|
|
427
|
+
* query: term,
|
|
428
|
+
* type: searchConfig.multiMatchType,
|
|
429
|
+
* fields: [
|
|
430
|
+
* `description^${searchConfig.boostFields.description}`,
|
|
431
|
+
* `sku^${searchConfig.boostFields.sku}`,
|
|
432
|
+
* ],
|
|
433
|
+
* },
|
|
434
|
+
* },
|
|
435
|
+
* ];
|
|
436
|
+
*
|
|
437
|
+
* return query;
|
|
331
438
|
* }
|
|
332
439
|
* ```
|
|
333
440
|
*/
|
|
334
441
|
mapQuery?: (query: any, input: ElasticSearchInput, searchConfig: DeepRequired<SearchConfig>, channelId: ID, enabledOnly: boolean) => any;
|
|
442
|
+
/**
|
|
443
|
+
* @description
|
|
444
|
+
* Sets `script_fields` inside the elasticsearch body which allows returning a script evaluation for each hit.
|
|
445
|
+
*
|
|
446
|
+
* The script field definition consists of three properties:
|
|
447
|
+
*
|
|
448
|
+
* * `graphQlType`: This is the type that will be returned when this script field is queried
|
|
449
|
+
* via the GraphQL API. It may be one of `String`, `Int`, `Float`, `Boolean`, `ID` or list
|
|
450
|
+
* versions thereof (`[String!]` etc) and can be appended with a `!` to indicate non-nullable fields.
|
|
451
|
+
* * `context`: determines whether this script field is available when grouping by product. Can be
|
|
452
|
+
* `product`, `variant` or `both`.
|
|
453
|
+
* * `scriptFn`: This is the function to run on each hit. Should return an object with a `script` property,
|
|
454
|
+
* as covered in the
|
|
455
|
+
* [Elasticsearch script fields docs](https://www.elastic.co/guide/en/elasticsearch/reference/7.15/search-fields.html#script-fields)
|
|
456
|
+
*
|
|
457
|
+
* @example
|
|
458
|
+
* ```TypeScript
|
|
459
|
+
* extendSearchInputType: {
|
|
460
|
+
* latitude: 'Float',
|
|
461
|
+
* longitude: 'Float',
|
|
462
|
+
* },
|
|
463
|
+
* indexMappingProperties: {
|
|
464
|
+
* // The `product-location` field corresponds to the `location` customProductMapping
|
|
465
|
+
* // defined below. Here we specify that it would be index as a `geo_point` type,
|
|
466
|
+
* // which will allow us to perform geo-spacial calculations on it in our script field.
|
|
467
|
+
* 'product-location': {
|
|
468
|
+
* type: 'geo_point', // contains function arcDistance
|
|
469
|
+
* },
|
|
470
|
+
* },
|
|
471
|
+
* customProductMappings: {
|
|
472
|
+
* location: {
|
|
473
|
+
* graphQlType: 'String',
|
|
474
|
+
* valueFn: (product: Product) => {
|
|
475
|
+
* // Assume that the Product entity has this customField defined
|
|
476
|
+
* const custom = product.customFields.location;
|
|
477
|
+
* return `${custom.latitude},${custom.longitude}`;
|
|
478
|
+
* },
|
|
479
|
+
* }
|
|
480
|
+
* },
|
|
481
|
+
* searchConfig: {
|
|
482
|
+
* scriptFields: {
|
|
483
|
+
* distance: {
|
|
484
|
+
* graphQlType: 'Float!',
|
|
485
|
+
* // Run this script only when grouping results by product
|
|
486
|
+
* context: 'product',
|
|
487
|
+
* scriptFn: (input) => {
|
|
488
|
+
* // The SearchInput was extended with latitude and longitude
|
|
489
|
+
* // via the `extendSearchInputType` option above.
|
|
490
|
+
* const lat = input.latitude;
|
|
491
|
+
* const lon = input.longitude;
|
|
492
|
+
* return {
|
|
493
|
+
* script: `doc['product-location'].arcDistance(${lat}, ${lon})`,
|
|
494
|
+
* }
|
|
495
|
+
* }
|
|
496
|
+
* }
|
|
497
|
+
* }
|
|
498
|
+
* }
|
|
499
|
+
* ```
|
|
500
|
+
*
|
|
501
|
+
* @since 1.3.0
|
|
502
|
+
*/
|
|
503
|
+
scriptFields?: {
|
|
504
|
+
[fieldName: string]: CustomScriptMapping<[ElasticSearchInput]>;
|
|
505
|
+
};
|
|
335
506
|
}
|
|
336
507
|
/**
|
|
337
508
|
* @description
|
package/lib/src/options.js
CHANGED
|
@@ -38,9 +38,14 @@ exports.defaultOptions = {
|
|
|
38
38
|
},
|
|
39
39
|
priceRangeBucketInterval: 1000,
|
|
40
40
|
mapQuery: query => query,
|
|
41
|
+
scriptFields: {},
|
|
41
42
|
},
|
|
42
43
|
customProductMappings: {},
|
|
43
44
|
customProductVariantMappings: {},
|
|
45
|
+
bufferUpdates: false,
|
|
46
|
+
hydrateProductRelations: [],
|
|
47
|
+
hydrateProductVariantRelations: [],
|
|
48
|
+
extendSearchInputType: {},
|
|
44
49
|
};
|
|
45
50
|
function mergeWithDefaults(userOptions) {
|
|
46
51
|
const { clientOptions } = userOptions, pluginOptions = __rest(userOptions, ["clientOptions"]);
|
package/lib/src/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,0DAAkC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,0DAAkC;AAwjBrB,QAAA,cAAc,GAAgC;IACvD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,IAAI;IACV,kBAAkB,EAAE,EAAE;IACtB,yBAAyB,EAAE,IAAI;IAC/B,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,EAAE;IACjB,sBAAsB,EAAE,EAAE;IAC1B,SAAS,EAAE,IAAI;IACf,YAAY,EAAE;QACV,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,KAAK;QACxB,cAAc,EAAE,aAAa;QAC7B,WAAW,EAAE;YACT,WAAW,EAAE,CAAC;YACd,kBAAkB,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;YACd,GAAG,EAAE,CAAC;SACT;QACD,wBAAwB,EAAE,IAAI;QAC9B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK;QACxB,YAAY,EAAE,EAAE;KACnB;IACD,qBAAqB,EAAE,EAAE;IACzB,4BAA4B,EAAE,EAAE;IAChC,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,EAAE;IAC3B,8BAA8B,EAAE,EAAE;IAClC,qBAAqB,EAAE,EAAE;CAC5B,CAAC;AAEF,SAAgB,iBAAiB,CAAC,WAAiC;IAC/D,MAAM,EAAE,aAAa,KAAuB,WAAW,EAA7B,aAAa,UAAK,WAAW,EAAjD,iBAAmC,CAAc,CAAC;IACxD,MAAM,MAAM,GAAG,mBAAS,CAAC,sBAAc,EAAE,aAAa,CAAgC,CAAC;IACvF,uCAAY,MAAM,KAAE,aAAa,IAAG;AACxC,CAAC;AAJD,8CAIC"}
|
package/lib/src/plugin.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { OnApplicationBootstrap } from '@nestjs/common';
|
|
2
2
|
import { EventBus, HealthCheckRegistryService, Type } from '@vendure/core';
|
|
3
|
-
import { ElasticsearchIndexService } from './elasticsearch-index.service';
|
|
4
3
|
import { ElasticsearchHealthIndicator } from './elasticsearch.health';
|
|
5
4
|
import { ElasticsearchService } from './elasticsearch.service';
|
|
5
|
+
import { ElasticsearchIndexService } from './indexing/elasticsearch-index.service';
|
|
6
6
|
import { ElasticsearchOptions } from './options';
|
|
7
7
|
/**
|
|
8
8
|
* @description
|
|
9
9
|
* This plugin allows your product search to be powered by [Elasticsearch](https://github.com/elastic/elasticsearch) - a powerful Open Source search
|
|
10
|
-
* engine. This is a drop-in replacement for the DefaultSearchPlugin
|
|
10
|
+
* engine. This is a drop-in replacement for the DefaultSearchPlugin which exposes many powerful configuration options enabling your storefront
|
|
11
|
+
* to support a wide range of use-cases such as indexing of custom properties, fine control over search index configuration, and to leverage
|
|
12
|
+
* advanced Elasticsearch features like spacial search.
|
|
11
13
|
*
|
|
12
14
|
* ## Installation
|
|
13
15
|
*
|
package/lib/src/plugin.js
CHANGED
|
@@ -13,19 +13,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.ElasticsearchPlugin = void 0;
|
|
14
14
|
const core_1 = require("@vendure/core");
|
|
15
15
|
const operators_1 = require("rxjs/operators");
|
|
16
|
+
const api_extensions_1 = require("./api/api-extensions");
|
|
17
|
+
const custom_mappings_resolver_1 = require("./api/custom-mappings.resolver");
|
|
18
|
+
const custom_script_fields_resolver_1 = require("./api/custom-script-fields.resolver");
|
|
19
|
+
const elasticsearch_resolver_1 = require("./api/elasticsearch-resolver");
|
|
16
20
|
const constants_1 = require("./constants");
|
|
17
|
-
const custom_mappings_resolver_1 = require("./custom-mappings.resolver");
|
|
18
|
-
const elasticsearch_index_service_1 = require("./elasticsearch-index.service");
|
|
19
|
-
const elasticsearch_resolver_1 = require("./elasticsearch-resolver");
|
|
20
21
|
const elasticsearch_health_1 = require("./elasticsearch.health");
|
|
21
22
|
const elasticsearch_service_1 = require("./elasticsearch.service");
|
|
22
|
-
const
|
|
23
|
-
const indexer_controller_1 = require("./indexer.controller");
|
|
23
|
+
const elasticsearch_index_service_1 = require("./indexing/elasticsearch-index.service");
|
|
24
|
+
const indexer_controller_1 = require("./indexing/indexer.controller");
|
|
24
25
|
const options_1 = require("./options");
|
|
25
26
|
/**
|
|
26
27
|
* @description
|
|
27
28
|
* This plugin allows your product search to be powered by [Elasticsearch](https://github.com/elastic/elasticsearch) - a powerful Open Source search
|
|
28
|
-
* engine. This is a drop-in replacement for the DefaultSearchPlugin
|
|
29
|
+
* engine. This is a drop-in replacement for the DefaultSearchPlugin which exposes many powerful configuration options enabling your storefront
|
|
30
|
+
* to support a wide range of use-cases such as indexing of custom properties, fine control over search index configuration, and to leverage
|
|
31
|
+
* advanced Elasticsearch features like spacial search.
|
|
29
32
|
*
|
|
30
33
|
* ## Installation
|
|
31
34
|
*
|
|
@@ -254,6 +257,7 @@ let ElasticsearchPlugin = ElasticsearchPlugin_1 = class ElasticsearchPlugin {
|
|
|
254
257
|
return this.elasticsearchIndexService.removeVariantFromChannel(event.ctx, event.productVariant.id, event.channelId);
|
|
255
258
|
}
|
|
256
259
|
});
|
|
260
|
+
// TODO: Remove this buffering logic because because we have dedicated buffering based on #1137
|
|
257
261
|
const collectionModification$ = this.eventBus.ofType(core_1.CollectionModificationEvent);
|
|
258
262
|
const closingNotifier$ = collectionModification$.pipe(operators_1.debounceTime(50));
|
|
259
263
|
collectionModification$
|
|
@@ -269,6 +273,7 @@ let ElasticsearchPlugin = ElasticsearchPlugin_1 = class ElasticsearchPlugin {
|
|
|
269
273
|
// The delay prevents a "TransactionNotStartedError" (in SQLite/sqljs) by allowing any existing
|
|
270
274
|
// transactions to complete before a new job is added to the queue (assuming the SQL-based
|
|
271
275
|
// JobQueueStrategy).
|
|
276
|
+
// TODO: should be able to remove owing to f0fd6625
|
|
272
277
|
.pipe(operators_1.delay(1))
|
|
273
278
|
.subscribe(event => {
|
|
274
279
|
const defaultTaxZone = event.ctx.channel.defaultTaxZone;
|
|
@@ -311,21 +316,36 @@ ElasticsearchPlugin = ElasticsearchPlugin_1 = __decorate([
|
|
|
311
316
|
elasticsearch_service_1.ElasticsearchService,
|
|
312
317
|
elasticsearch_health_1.ElasticsearchHealthIndicator,
|
|
313
318
|
indexer_controller_1.ElasticsearchIndexerController,
|
|
319
|
+
core_1.SearchJobBufferService,
|
|
314
320
|
{ provide: constants_1.ELASTIC_SEARCH_OPTIONS, useFactory: () => ElasticsearchPlugin_1.options },
|
|
321
|
+
{
|
|
322
|
+
provide: core_1.BUFFER_SEARCH_INDEX_UPDATES,
|
|
323
|
+
useFactory: () => ElasticsearchPlugin_1.options.bufferUpdates === true,
|
|
324
|
+
},
|
|
315
325
|
],
|
|
316
|
-
adminApiExtensions: {
|
|
326
|
+
adminApiExtensions: {
|
|
327
|
+
resolvers: [elasticsearch_resolver_1.AdminElasticSearchResolver, elasticsearch_resolver_1.EntityElasticSearchResolver],
|
|
328
|
+
schema: () => api_extensions_1.generateSchemaExtensions(ElasticsearchPlugin_1.options),
|
|
329
|
+
},
|
|
317
330
|
shopApiExtensions: {
|
|
318
331
|
resolvers: () => {
|
|
319
332
|
const { options } = ElasticsearchPlugin_1;
|
|
320
333
|
const requiresUnionResolver = 0 < Object.keys(options.customProductMappings || {}).length &&
|
|
321
334
|
0 < Object.keys(options.customProductVariantMappings || {}).length;
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
335
|
+
const requiresUnionScriptResolver = 0 <
|
|
336
|
+
Object.values(options.searchConfig.scriptFields || {}).filter(field => field.context !== 'product').length &&
|
|
337
|
+
0 <
|
|
338
|
+
Object.values(options.searchConfig.scriptFields || {}).filter(field => field.context !== 'variant').length;
|
|
339
|
+
return [
|
|
340
|
+
elasticsearch_resolver_1.ShopElasticSearchResolver,
|
|
341
|
+
elasticsearch_resolver_1.EntityElasticSearchResolver,
|
|
342
|
+
...(requiresUnionResolver ? [custom_mappings_resolver_1.CustomMappingsResolver] : []),
|
|
343
|
+
...(requiresUnionScriptResolver ? [custom_script_fields_resolver_1.CustomScriptFieldsResolver] : []),
|
|
344
|
+
];
|
|
325
345
|
},
|
|
326
346
|
// `any` cast is there due to a strange error "Property '[Symbol.iterator]' is missing in type... URLSearchParams"
|
|
327
347
|
// which looks like possibly a TS/definitions bug.
|
|
328
|
-
schema: () =>
|
|
348
|
+
schema: () => api_extensions_1.generateSchemaExtensions(ElasticsearchPlugin_1.options),
|
|
329
349
|
},
|
|
330
350
|
}),
|
|
331
351
|
__metadata("design:paramtypes", [core_1.EventBus,
|
package/lib/src/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
|