lemon-core 2.2.20 → 3.0.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.
Files changed (230) hide show
  1. package/dist/common/test-helper.js +1 -1
  2. package/dist/common/test-helper.js.map +1 -1
  3. package/dist/controllers/dummy-controller.js.map +1 -1
  4. package/dist/cores/api-service.js.map +1 -1
  5. package/dist/cores/aws/aws-sns-service.js +3 -3
  6. package/dist/cores/aws/aws-sns-service.js.map +1 -1
  7. package/dist/cores/core-types.d.ts +92 -2
  8. package/dist/cores/core-types.js +1 -0
  9. package/dist/cores/core-types.js.map +1 -1
  10. package/dist/cores/dynamo-service.js +2 -2
  11. package/dist/cores/dynamo-service.js.map +1 -1
  12. package/dist/cores/elastic6-query-service.d.ts +42 -9
  13. package/dist/cores/elastic6-query-service.js +144 -134
  14. package/dist/cores/elastic6-query-service.js.map +1 -1
  15. package/dist/cores/elastic6-service.d.ts +144 -57
  16. package/dist/cores/elastic6-service.js +506 -322
  17. package/dist/cores/elastic6-service.js.map +1 -1
  18. package/dist/cores/lambda/lambda-cognito-handler.js.map +1 -1
  19. package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
  20. package/dist/cores/lambda/lambda-dynamo-stream-handler.js +3 -3
  21. package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
  22. package/dist/cores/lambda/lambda-notification-handler.js.map +1 -1
  23. package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
  24. package/dist/cores/lambda/lambda-web-handler.js +2 -4
  25. package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
  26. package/dist/cores/lambda/lambda-wss-handler.js.map +1 -1
  27. package/dist/cores/protocol/protocol-service.d.ts +1 -2
  28. package/dist/cores/protocol/protocol-service.js +5 -3
  29. package/dist/cores/protocol/protocol-service.js.map +1 -1
  30. package/dist/engine/builder.d.ts +1 -0
  31. package/dist/engine/builder.js +1 -1
  32. package/dist/engine/builder.js.map +1 -1
  33. package/dist/engine/engine.js +2 -1
  34. package/dist/engine/engine.js.map +1 -1
  35. package/dist/engine/index.d.ts +0 -1
  36. package/dist/engine/index.js +2 -4
  37. package/dist/engine/index.js.map +1 -1
  38. package/dist/engine/types.d.ts +0 -4
  39. package/dist/engine/types.js.map +1 -1
  40. package/dist/engine/utilities.d.ts +5 -1
  41. package/dist/engine/utilities.js +126 -11
  42. package/dist/engine/utilities.js.map +1 -1
  43. package/dist/tools/express.js +0 -3
  44. package/dist/tools/express.js.map +1 -1
  45. package/package.json +6 -11
  46. package/CHANGELOG.md +0 -61
  47. package/dist/docs/assets/css/main.css +0 -2321
  48. package/dist/docs/assets/images/icons.png +0 -0
  49. package/dist/docs/assets/images/icons@2x.png +0 -0
  50. package/dist/docs/assets/images/widgets.png +0 -0
  51. package/dist/docs/assets/images/widgets@2x.png +0 -0
  52. package/dist/docs/assets/js/main.js +0 -1
  53. package/dist/docs/assets/js/search.js +0 -3
  54. package/dist/docs/classes/abstractmanager.html +0 -1054
  55. package/dist/docs/classes/apiproxyclient.html +0 -509
  56. package/dist/docs/classes/apiservice.html +0 -805
  57. package/dist/docs/classes/awskmsservice.html +0 -468
  58. package/dist/docs/classes/awsmodule.html +0 -353
  59. package/dist/docs/classes/awss3service.html +0 -563
  60. package/dist/docs/classes/awssnsservice.html +0 -543
  61. package/dist/docs/classes/awssqsservice.html +0 -517
  62. package/dist/docs/classes/cacheservice.html +0 -996
  63. package/dist/docs/classes/configmodule.html +0 -311
  64. package/dist/docs/classes/dummycacheservice.html +0 -1000
  65. package/dist/docs/classes/dummycontroller.html +0 -709
  66. package/dist/docs/classes/dummydynamoservice.html +0 -915
  67. package/dist/docs/classes/dummyelastic6service.html +0 -791
  68. package/dist/docs/classes/dummyredisstorageservice.html +0 -804
  69. package/dist/docs/classes/dummystoragemaker.html +0 -383
  70. package/dist/docs/classes/dummystorageservice.html +0 -592
  71. package/dist/docs/classes/dynamoqueryservice.html +0 -413
  72. package/dist/docs/classes/dynamoscanservice.html +0 -358
  73. package/dist/docs/classes/dynamoservice.html +0 -844
  74. package/dist/docs/classes/dynamostorageservice.html +0 -623
  75. package/dist/docs/classes/elastic6queryservice.html +0 -458
  76. package/dist/docs/classes/elastic6service.html +0 -804
  77. package/dist/docs/classes/generalapicontroller.html +0 -877
  78. package/dist/docs/classes/generalcontroller.html +0 -454
  79. package/dist/docs/classes/generalcontrollerlocal.html +0 -499
  80. package/dist/docs/classes/generalcontrollerlocal2.html +0 -523
  81. package/dist/docs/classes/generalkeymaker.html +0 -335
  82. package/dist/docs/classes/generalmodelfilter.html +0 -529
  83. package/dist/docs/classes/generalwebcontroller.html +0 -580
  84. package/dist/docs/classes/hangulservice.html +0 -636
  85. package/dist/docs/classes/httpstorageservice.html +0 -539
  86. package/dist/docs/classes/lambdacognitohandler.html +0 -355
  87. package/dist/docs/classes/lambdacronhandler.html +0 -390
  88. package/dist/docs/classes/lambdacronhandlerlocal.html +0 -371
  89. package/dist/docs/classes/lambdadynamostreamhandler.html +0 -472
  90. package/dist/docs/classes/lambdadynamostreamhandlerlocal.html +0 -455
  91. package/dist/docs/classes/lambdahandler.html +0 -479
  92. package/dist/docs/classes/lambdahandlerlocal.html +0 -472
  93. package/dist/docs/classes/lambdamodule.html +0 -433
  94. package/dist/docs/classes/lambdanotificationhandler.html +0 -474
  95. package/dist/docs/classes/lambdanotificationhandlerlocal.html +0 -457
  96. package/dist/docs/classes/lambdasnshandler.html +0 -394
  97. package/dist/docs/classes/lambdasnshandlerlocal.html +0 -397
  98. package/dist/docs/classes/lambdasqshandler.html +0 -394
  99. package/dist/docs/classes/lambdasqshandlerlocal.html +0 -397
  100. package/dist/docs/classes/lambdasubhandler.html +0 -305
  101. package/dist/docs/classes/lambdawebhandler.html +0 -603
  102. package/dist/docs/classes/lambdawebhandlerlocal.html +0 -581
  103. package/dist/docs/classes/lambdawsshandler.html +0 -359
  104. package/dist/docs/classes/memcachedbackend.html +0 -900
  105. package/dist/docs/classes/mocksapiservice.html +0 -691
  106. package/dist/docs/classes/modelutil.html +0 -311
  107. package/dist/docs/classes/myconfigservice.html +0 -561
  108. package/dist/docs/classes/myconfigservicetest.html +0 -527
  109. package/dist/docs/classes/myconfigservicetest2.html +0 -522
  110. package/dist/docs/classes/mydummysqsservice.html +0 -419
  111. package/dist/docs/classes/myenginemodules.html +0 -357
  112. package/dist/docs/classes/mygeneralapicontroller.html +0 -837
  113. package/dist/docs/classes/mylemonwebcontroller.html +0 -356
  114. package/dist/docs/classes/mymodelfilter.html +0 -479
  115. package/dist/docs/classes/myprotocolservice.html +0 -993
  116. package/dist/docs/classes/myprotocolservicetest.html +0 -983
  117. package/dist/docs/classes/myservice.html +0 -329
  118. package/dist/docs/classes/mystorage.html +0 -1370
  119. package/dist/docs/classes/nodecachebackend.html +0 -714
  120. package/dist/docs/classes/protocolmodule.html +0 -311
  121. package/dist/docs/classes/proxystorageservice.html +0 -1441
  122. package/dist/docs/classes/query.html +0 -850
  123. package/dist/docs/classes/redisbackend.html +0 -781
  124. package/dist/docs/classes/redisstorageservice.html +0 -867
  125. package/dist/docs/classes/s3putobjectrequestbuilder.html +0 -509
  126. package/dist/docs/classes/scan.html +0 -685
  127. package/dist/docs/classes/snsprotocoltransformer.html +0 -334
  128. package/dist/docs/classes/sqsprotocoltransformer.html +0 -334
  129. package/dist/docs/classes/typedstorageservice.html +0 -914
  130. package/dist/docs/classes/uniquefieldmanager.html +0 -477
  131. package/dist/docs/classes/usermanager.html +0 -931
  132. package/dist/docs/classes/utilities.html +0 -1914
  133. package/dist/docs/classes/webprotocoltransformer.html +0 -330
  134. package/dist/docs/globals.html +0 -7477
  135. package/dist/docs/index.html +0 -1519
  136. package/dist/docs/interfaces/accountitem.html +0 -277
  137. package/dist/docs/interfaces/accountmodel.html +0 -306
  138. package/dist/docs/interfaces/adaptiveparam.html +0 -203
  139. package/dist/docs/interfaces/apiheaders.html +0 -183
  140. package/dist/docs/interfaces/apihttpproxy.html +0 -304
  141. package/dist/docs/interfaces/apiserviceclient.html +0 -448
  142. package/dist/docs/interfaces/autocompletesearchparam.html +0 -309
  143. package/dist/docs/interfaces/betweencondition.html +0 -226
  144. package/dist/docs/interfaces/cachebackend.html +0 -714
  145. package/dist/docs/interfaces/cacheentry.html +0 -248
  146. package/dist/docs/interfaces/cacheoptions.html +0 -267
  147. package/dist/docs/interfaces/callbackdata.html +0 -279
  148. package/dist/docs/interfaces/callbackparam.html +0 -252
  149. package/dist/docs/interfaces/comparisoncondition.html +0 -226
  150. package/dist/docs/interfaces/coreconfigservice.html +0 -342
  151. package/dist/docs/interfaces/corekey.html +0 -278
  152. package/dist/docs/interfaces/corekeymakeable.html +0 -292
  153. package/dist/docs/interfaces/corekmsservice.html +0 -311
  154. package/dist/docs/interfaces/coremodel.html +0 -499
  155. package/dist/docs/interfaces/coremodelfilterable.html +0 -281
  156. package/dist/docs/interfaces/cores3service.html +0 -444
  157. package/dist/docs/interfaces/coreservices.html +0 -232
  158. package/dist/docs/interfaces/coresnsservice.html +0 -317
  159. package/dist/docs/interfaces/corewebcontroller.html +0 -271
  160. package/dist/docs/interfaces/cronevent.html +0 -223
  161. package/dist/docs/interfaces/cronparam.html +0 -212
  162. package/dist/docs/interfaces/dynamooption.html +0 -254
  163. package/dist/docs/interfaces/dynamoqueryresult.html +0 -244
  164. package/dist/docs/interfaces/dynamoscanresult.html +0 -244
  165. package/dist/docs/interfaces/dynamosimplequeriable.html +0 -308
  166. package/dist/docs/interfaces/dynamosimplescannable.html +0 -255
  167. package/dist/docs/interfaces/dynamostreambody.html +0 -268
  168. package/dist/docs/interfaces/dynamostreamcallback.html +0 -209
  169. package/dist/docs/interfaces/dynamostreamfilter.html +0 -218
  170. package/dist/docs/interfaces/dynamostreamparam.html +0 -240
  171. package/dist/docs/interfaces/elastic6item.html +0 -221
  172. package/dist/docs/interfaces/elastic6option.html +0 -275
  173. package/dist/docs/interfaces/elastic6simplequeriable.html +0 -284
  174. package/dist/docs/interfaces/engineconsole.html +0 -292
  175. package/dist/docs/interfaces/enginecore.html +0 -344
  176. package/dist/docs/interfaces/enginemodule.html +0 -269
  177. package/dist/docs/interfaces/enginemodules.html +0 -316
  178. package/dist/docs/interfaces/engineoption.html +0 -244
  179. package/dist/docs/interfaces/enginescope.html +0 -220
  180. package/dist/docs/interfaces/existencecondition.html +0 -212
  181. package/dist/docs/interfaces/filter.html +0 -253
  182. package/dist/docs/interfaces/generalfuntion.html +0 -207
  183. package/dist/docs/interfaces/generalitem.html +0 -212
  184. package/dist/docs/interfaces/handlermap.html +0 -171
  185. package/dist/docs/interfaces/incrementable.html +0 -190
  186. package/dist/docs/interfaces/internalkey.html +0 -210
  187. package/dist/docs/interfaces/internalmodel.html +0 -226
  188. package/dist/docs/interfaces/itementry.html +0 -241
  189. package/dist/docs/interfaces/jwtcommon.html +0 -242
  190. package/dist/docs/interfaces/lambdahandlerservice.html +0 -340
  191. package/dist/docs/interfaces/lemonengine.html +0 -593
  192. package/dist/docs/interfaces/metricpostbody.html +0 -220
  193. package/dist/docs/interfaces/mygeneral.html +0 -271
  194. package/dist/docs/interfaces/mymodel.html +0 -554
  195. package/dist/docs/interfaces/myprotocolparam.html +0 -359
  196. package/dist/docs/interfaces/nextcontext.html +0 -381
  197. package/dist/docs/interfaces/nextidentity.html +0 -325
  198. package/dist/docs/interfaces/nextidentityaccess.html +0 -495
  199. package/dist/docs/interfaces/nextidentitycognito.html +0 -422
  200. package/dist/docs/interfaces/notificationbody.html +0 -171
  201. package/dist/docs/interfaces/notificationparam.html +0 -304
  202. package/dist/docs/interfaces/options.html +0 -226
  203. package/dist/docs/interfaces/parrallelcallback.html +0 -203
  204. package/dist/docs/interfaces/parrallelparam.html +0 -285
  205. package/dist/docs/interfaces/protocolbody.html +0 -183
  206. package/dist/docs/interfaces/protocolparam.html +0 -336
  207. package/dist/docs/interfaces/protocolservice.html +0 -548
  208. package/dist/docs/interfaces/protocoltransformer.html +0 -295
  209. package/dist/docs/interfaces/proxyparams.html +0 -212
  210. package/dist/docs/interfaces/putobjectresult.html +0 -282
  211. package/dist/docs/interfaces/queryresult.html +0 -272
  212. package/dist/docs/interfaces/redisoptions.html +0 -248
  213. package/dist/docs/interfaces/simplesearchparam.html +0 -351
  214. package/dist/docs/interfaces/slackaction.html +0 -240
  215. package/dist/docs/interfaces/slackattachment.html +0 -459
  216. package/dist/docs/interfaces/slackpostbody.html +0 -240
  217. package/dist/docs/interfaces/sqsattribute.html +0 -171
  218. package/dist/docs/interfaces/sqsmessage.html +0 -254
  219. package/dist/docs/interfaces/sqsrecord.html +0 -324
  220. package/dist/docs/interfaces/sqsservice.html +0 -333
  221. package/dist/docs/interfaces/sqsstatistics.html +0 -240
  222. package/dist/docs/interfaces/storagemakeable.html +0 -258
  223. package/dist/docs/interfaces/storagemodel.html +0 -285
  224. package/dist/docs/interfaces/storageservice.html +0 -497
  225. package/dist/docs/interfaces/stringcondition.html +0 -226
  226. package/dist/docs/interfaces/tagset.html +0 -171
  227. package/dist/docs/interfaces/testmodel.html +0 -334
  228. package/dist/docs/interfaces/timeout.html +0 -233
  229. package/dist/docs/interfaces/updatable.html +0 -193
  230. package/dist/docs/interfaces/user.html +0 -534
@@ -20,23 +20,25 @@ exports.Elastic6QueryService = void 0;
20
20
  *
21
21
  * @author Steve Jung <steve@lemoncloud.io>
22
22
  * @date 2019-11-20 initial version via backbone
23
+ * @date 2021-12-07 support SearchBody
23
24
  *
24
25
  * @copyright (C) 2019 LemonCloud Co Ltd. - All Rights Reserved.
25
26
  */
26
27
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
28
  const engine_1 = require("../engine/");
28
- const NS = engine_1.$U.NS('ES6Q', 'green'); // NAMESPACE TO BE PRINTED.
29
29
  const elastic6_service_1 = require("./elastic6-service");
30
30
  const hangul_service_1 = __importDefault(require("./hangul-service"));
31
- /** ****************************************************************************************************************
32
- * Service Main
33
- ** ****************************************************************************************************************/
31
+ const NS = engine_1.$U.NS('ES6Q', 'green'); // NAMESPACE TO BE PRINTED.
34
32
  /**
35
33
  * class: `Elastic6QueryService`
36
34
  * - support simple query like range search.
37
35
  */
38
36
  class Elastic6QueryService {
39
- constructor(options) {
37
+ /**
38
+ * use query w/ the given search-service.
39
+ * @param service the origin search-service to use.
40
+ */
41
+ constructor(service) {
40
42
  /**
41
43
  * say hello of identity.
42
44
  */
@@ -54,13 +56,16 @@ class Elastic6QueryService {
54
56
  let $O = ''; // OrderBy
55
57
  let $H = ''; // Highlight
56
58
  //! build query.
57
- const queries = engine_1.$_.reduce(param, (list, val, key) => {
59
+ const queries = Object.keys(param).reduce((list, key) => {
60
+ let val = param[key];
58
61
  // ignore internal values.
59
62
  if (key.startsWith('_'))
60
63
  return list;
61
64
  // _log(NS, `>> param[${key}] = `, val);
62
65
  if (key === '$query') {
63
- $query = { query: typeof val === 'object' ? val : JSON.parse(val) };
66
+ $query = {
67
+ query: typeof val === 'object' ? val : typeof val === 'string' ? JSON.parse(val) : `${val || ''}`,
68
+ };
64
69
  }
65
70
  else if (key === '$limit') {
66
71
  $limit = engine_1.$U.N(val, 0);
@@ -103,7 +108,7 @@ class Elastic6QueryService {
103
108
  // all.
104
109
  $source = '*';
105
110
  }
106
- else if (val && val.indexOf && val.indexOf(',')) {
111
+ else if (typeof val === 'string' && val.indexOf !== undefined) {
107
112
  // string array set.
108
113
  let vals = val.split(',') || [];
109
114
  let $includes = [];
@@ -126,7 +131,7 @@ class Elastic6QueryService {
126
131
  }
127
132
  }
128
133
  else if (key === '$exist' || key === '$exists') {
129
- (val.split(',') || []).forEach((val) => {
134
+ (Array.isArray(val) ? val : `${val}`.split(',') || []).forEach((val) => {
130
135
  val = `${val || ''}`.trim();
131
136
  if (!val)
132
137
  return;
@@ -141,8 +146,8 @@ class Elastic6QueryService {
141
146
  else {
142
147
  //! escape if there is ' ' except like '(a AND B)'
143
148
  const escape_val = (val) => {
144
- if (val === '') {
145
- val = '"' + val + '"';
149
+ if (typeof val === 'string' && val === '') {
150
+ return '"' + val + '"';
146
151
  }
147
152
  else if (val && typeof val === 'string') {
148
153
  if (val.startsWith('(') && val.endsWith(')')) {
@@ -166,8 +171,8 @@ class Elastic6QueryService {
166
171
  val.indexOf('\\') >= 0 ||
167
172
  val.indexOf('#') >= 0 ||
168
173
  val.indexOf('^') >= 0) {
169
- val = val.replace(/([\"\'])/gi, '\\$1'); // replace '"' -> '\"'
170
- val = '"' + val + '"';
174
+ const str = val.replace(/([\"\'])/gi, '\\$1'); // replace '"' -> '\"'
175
+ return '"' + str + '"';
171
176
  }
172
177
  }
173
178
  return val;
@@ -177,7 +182,7 @@ class Elastic6QueryService {
177
182
  if (key.startsWith('!')) {
178
183
  if (val) {
179
184
  if (Array.isArray(val)) {
180
- const vals = val.map(_ => escape_val(_));
185
+ const vals = val.map((_) => escape_val(_));
181
186
  list.push(key.substr(1) + ':(NOT (' + vals.join(' OR ') + '))');
182
187
  }
183
188
  else {
@@ -200,7 +205,7 @@ class Elastic6QueryService {
200
205
  }
201
206
  else if (val && Array.isArray(val)) {
202
207
  // list.push('(' + val.map(val => `${key}:${val}`).join(' OR ') + ')');
203
- list.push(`${key}:` + '(' + val.map(val => `${escape_val(val)}`).join(' OR ') + ')');
208
+ list.push(`${key}:` + '(' + val.map((val) => `${escape_val(val)}`).join(' OR ') + ')');
204
209
  }
205
210
  else {
206
211
  list.push(`${key}:${val}`);
@@ -283,11 +288,16 @@ class Elastic6QueryService {
283
288
  //! returns body.
284
289
  return $body;
285
290
  };
286
- // eslint-disable-next-line prettier/prettier
287
- engine_1._inf(NS, `Elastic6QueryService(${options.indexName}/${options.idName})...`);
291
+ const options = service.options;
288
292
  if (!options.indexName)
289
293
  throw new Error('.indexName is required');
290
- this.options = Object.assign({ docType: '_doc' }, options);
294
+ this.service = service;
295
+ }
296
+ /**
297
+ * get options
298
+ */
299
+ get options() {
300
+ return this.service.options;
291
301
  }
292
302
  /**
293
303
  * query all by id.
@@ -346,131 +356,129 @@ class Elastic6QueryService {
346
356
  return __awaiter(this, void 0, void 0, function* () {
347
357
  if (!param)
348
358
  throw new Error('@param (SimpleSearchParam) is required');
349
- const { endpoint, indexName, docType } = this.options;
350
- const { client } = elastic6_service_1.Elastic6Service.instance(endpoint);
351
- engine_1._log(NS, `- search(${indexName})....`);
359
+ const { indexName } = this.options;
360
+ engine_1._log(NS, `- searchSimple(${indexName})....`);
352
361
  engine_1._log(NS, `> param =`, engine_1.$U.json(param));
353
362
  //! build query body.
354
- const payload = this.buildQueryBody(param);
355
- const id = '';
356
- const type = `${docType}`;
357
- const params = { index: indexName, type, body: payload };
358
- engine_1._log(NS, `> params[${id}] =`, engine_1.$U.json(params));
359
- const res = yield client.search(params).catch(elastic6_service_1.$ERROR.handler('search', e => {
360
- engine_1._err(NS, `> search[${indexName}].err =`, e);
361
- throw e;
362
- }));
363
- // {"took":6,"timed_out":false,"_shards":{"total":4,"successful":4,"skipped":0,"failed":0},"hits":{"total":1,"max_score":0.2876821,"hits":[{"_index":"test-v3","_type":"_doc","_id":"aaa","_score":0.2876821,"_source":{"name":"AAA","@id":"aaa","a":-3,"b":-2}}]}}
364
- // _log(NS, `> search[${id}].res =`, $U.json(res));
365
- engine_1._log(NS, `> search[${id}].took =`, res.took);
366
- engine_1._log(NS, `> search[${id}].hits.total =`, res.hits && res.hits.total);
367
- engine_1._log(NS, `> search[${id}].hits.max_score =`, res.hits && res.hits.max_score);
368
- engine_1._log(NS, `> search[${id}].hits.hits[0] =`, res.hits && engine_1.$U.json(res.hits.hits[0]));
369
- //! extract for result.
370
- const $hits = res.hits;
371
- const hits = ($hits && $hits.hits) || [];
372
- const total = engine_1.$U.N($hits && $hits.total, 0);
373
- const list = hits.map((_) => {
374
- const id = _ && _._id; // id of elastic-search
375
- const score = _ && _._score; // search score.
376
- const source = _ && _._source; // origin data
377
- //! save as internal
378
- source._id = source._id || id; // attach to internal-id
379
- source._score = score;
380
- // delete internal autocomplete data
381
- delete source[elastic6_service_1.Elastic6Service.DECOMPOSED_FIELD];
382
- delete source[elastic6_service_1.Elastic6Service.QWERTY_FIELD];
383
- return source;
384
- });
385
- const result = { list, total };
386
- if (res.aggregations) {
387
- const $aggregations = res.aggregations || {};
388
- result.aggregations = Object.keys($aggregations).reduce((aggrs, field) => {
389
- const { doc_count_error_upper_bound: docCountError = 0, sum_other_doc_count: docSkippedCount = 0, buckets, } = res.aggregations[field];
390
- if (docCountError > 0)
391
- engine_1._err(NS, `> [WARN] aggregation: counts for each term are not accurate.`);
392
- if (docSkippedCount > 0)
393
- engine_1._err(NS, '> [WARN] aggregation: too many unique terms in the result. some terms are skipped.');
394
- if (Array.isArray(buckets)) {
395
- aggrs[field] = buckets.map((bucket) => {
396
- return { key: bucket.key, count: bucket.doc_count };
397
- });
398
- }
399
- return aggrs;
400
- }, {});
401
- }
402
- return result;
363
+ const body = this.buildQueryBody(param);
364
+ //! search via client
365
+ const res = yield this.search(body);
366
+ //! convert to query-result.
367
+ return this.asQueryResult(body, res);
368
+ });
369
+ }
370
+ /**
371
+ * search with raw query language.
372
+ *
373
+ * @param body SearchBody.
374
+ * @returns results.
375
+ */
376
+ search(body, searchType) {
377
+ return __awaiter(this, void 0, void 0, function* () {
378
+ if (!body)
379
+ throw new Error('@body (SearchBody) is required');
380
+ return this.service.searchRaw(body, searchType);
403
381
  });
404
382
  }
383
+ /**
384
+ * convert result as `QueryResult`
385
+ * @param body the query body requested
386
+ * @param res the result
387
+ * @returns QueryResult
388
+ */
389
+ asQueryResult(body, res) {
390
+ var _a, _b, _c;
391
+ const size = engine_1.$U.N(body === null || body === void 0 ? void 0 : body.size, 10);
392
+ //! extract for result.
393
+ const hits = res === null || res === void 0 ? void 0 : res.hits;
394
+ if (typeof hits !== 'object')
395
+ throw new Error(`.hits (object) is required - hists:${engine_1.$U.json(hits)}`);
396
+ const total = engine_1.$U.N(typeof ((_a = hits.total) === null || _a === void 0 ? void 0 : _a.value) === 'number' ? (_b = hits.total) === null || _b === void 0 ? void 0 : _b.value : hits.total, 0); // since v7.x
397
+ const last = (hits === null || hits === void 0 ? void 0 : hits.hits.length) === size ? (_c = hits.hits[size - 1]) === null || _c === void 0 ? void 0 : _c.sort : undefined;
398
+ const list = ((hits && hits.hits) || []).map((N) => {
399
+ const id = N && N._id; // id of elastic-search
400
+ const score = N && N._score; // search score.
401
+ const source = N && N._source; // origin data
402
+ //! save as internal
403
+ source._id = source._id || id; // attach to internal-id
404
+ source._score = score;
405
+ // delete internal autocomplete data
406
+ delete source[elastic6_service_1.Elastic6Service.DECOMPOSED_FIELD];
407
+ delete source[elastic6_service_1.Elastic6Service.QWERTY_FIELD];
408
+ return source;
409
+ });
410
+ const result = { list, total, last };
411
+ if (res === null || res === void 0 ? void 0 : res.aggregations) {
412
+ const $aggregations = res.aggregations || {};
413
+ result.aggregations = Object.keys($aggregations).reduce((aggrs, field) => {
414
+ const { doc_count_error_upper_bound: docCountError = 0, sum_other_doc_count: docSkippedCount = 0, buckets, } = res.aggregations[field];
415
+ if (docCountError > 0)
416
+ engine_1._err(NS, `> [WARN] aggregation: counts for each term are not accurate.`);
417
+ if (docSkippedCount > 0)
418
+ engine_1._err(NS, '> [WARN] aggregation: too many unique terms in the result. some terms are skipped.');
419
+ if (Array.isArray(buckets)) {
420
+ aggrs[field] = buckets.map((bucket) => {
421
+ return { key: bucket.key, count: bucket.doc_count };
422
+ });
423
+ }
424
+ return aggrs;
425
+ }, {});
426
+ }
427
+ return result;
428
+ }
429
+ /**
430
+ * convert `AutocompleteSearchParam` to `SearchBody`
431
+ * @param param AutocompleteSearchParam
432
+ * @returns SearchBody
433
+ */
434
+ asSearchBody(param) {
435
+ const { autocompleteFields } = this.options;
436
+ // validate parameters
437
+ if (!param)
438
+ throw new Error('@param (AutocompleteSearchParam) is required');
439
+ if (!param.$query || !Object.keys(param.$query).length)
440
+ throw new Error('.query is required');
441
+ if (Object.keys(param.$query).length > 1)
442
+ throw new Error('.query accepts only one property');
443
+ const [field, query] = Object.entries(param.$query)[0];
444
+ if (!field || !query)
445
+ throw new Error(`.query is invalid`);
446
+ if (!autocompleteFields.includes(field))
447
+ throw new Error(`.query has no autocomplete field`);
448
+ // build query body
449
+ const decomposedField = `${elastic6_service_1.Elastic6Service.DECOMPOSED_FIELD}.${field}`;
450
+ const qwertyField = `${elastic6_service_1.Elastic6Service.QWERTY_FIELD}.${field}`;
451
+ const body = {
452
+ query: {
453
+ bool: {
454
+ should: [
455
+ { match: { [decomposedField]: hangul_service_1.default.asJamoSequence(query) } },
456
+ { match: { [qwertyField]: query } },
457
+ ],
458
+ minimum_should_match: 1,
459
+ },
460
+ },
461
+ };
462
+ if (param.$filter) {
463
+ body.query.bool.filter = Object.entries(param.$filter).map(([field, filter]) => {
464
+ return { term: { [field]: filter } };
465
+ });
466
+ }
467
+ body.size = engine_1.$U.N(param.$limit, 10);
468
+ body.from = engine_1.$U.N(param.$page, 0) * body.size;
469
+ return { field, query, body };
470
+ }
405
471
  /**
406
472
  * search item in Search-as-You-Type way
407
473
  * @param param AutocompleteSearchParam
408
474
  */
409
475
  searchAutocomplete(param) {
410
476
  return __awaiter(this, void 0, void 0, function* () {
411
- const { endpoint, indexName, docType: type, autocompleteFields } = this.options;
412
- const { client } = elastic6_service_1.Elastic6Service.instance(endpoint);
413
- // validate parameters
414
- if (!param)
415
- throw new Error('@param (AutocompleteSearchParam) is required');
416
- if (!param.$query || !Object.keys(param.$query).length)
417
- throw new Error('.query is required');
418
- if (Object.keys(param.$query).length > 1)
419
- throw new Error('.query accepts only one property');
420
- const [field, query] = Object.entries(param.$query)[0];
421
- if (!field || !query)
422
- throw new Error(`.query is invalid`);
423
- if (!autocompleteFields.includes(field))
424
- throw new Error(`.query has no autocomplete field`);
425
- // build query body
426
- const decomposedField = `${elastic6_service_1.Elastic6Service.DECOMPOSED_FIELD}.${field}`;
427
- const qwertyField = `${elastic6_service_1.Elastic6Service.QWERTY_FIELD}.${field}`;
428
- const body = {
429
- query: {
430
- bool: {
431
- should: [
432
- { match: { [decomposedField]: hangul_service_1.default.asJamoSequence(query) } },
433
- { match: { [qwertyField]: query } },
434
- ],
435
- minimum_should_match: 1,
436
- },
437
- },
438
- };
439
- if (param.$filter) {
440
- body.query.bool.filter = Object.entries(param.$filter).map(([field, filter]) => {
441
- return { term: { [field]: filter } };
442
- });
443
- }
444
- body.size = engine_1.$U.N(param.$limit, 10);
445
- body.from = engine_1.$U.N(param.$page, 0) * body.size;
446
- // perform search
447
- const params = { index: indexName, type, body };
448
- engine_1._log(NS, `> params =`, engine_1.$U.json(params));
449
- const res = yield client.search(params).catch(elastic6_service_1.$ERROR.handler('search', e => {
450
- engine_1._err(NS, `> search[${indexName}].err =`, e);
451
- throw e;
452
- }));
453
- engine_1._log(NS, `> search.took =`, res.took);
454
- engine_1._log(NS, `> search.hits.total =`, res.hits && res.hits.total);
455
- engine_1._log(NS, `> search.hits.max_score =`, res.hits && res.hits.max_score);
456
- engine_1._log(NS, `> search.hits.hits[0] =`, res.hits && engine_1.$U.json(res.hits.hits[0]));
457
- // extract result
458
- const $hits = res.hits;
459
- const hits = ($hits && $hits.hits) || [];
460
- const total = engine_1.$U.N($hits && $hits.total, 0);
461
- const list = hits.map((_) => {
462
- const id = _ && _._id; // id of elastic-search
463
- const score = _ && _._score; // search score.
464
- const source = _ && _._source; // origin data
465
- //! save as internal
466
- source._id = source._id || id; // attach to internal-id
467
- source._score = score;
468
- // delete internal autocomplete data
469
- delete source[elastic6_service_1.Elastic6Service.DECOMPOSED_FIELD];
470
- delete source[elastic6_service_1.Elastic6Service.QWERTY_FIELD];
471
- return source;
472
- });
477
+ const { field, query, body } = this.asSearchBody(param);
478
+ const res = yield this.service.searchRaw(body);
479
+ const result = this.asQueryResult(body, res);
473
480
  // highlighting result manually
481
+ let list = result.list;
474
482
  if (param.$highlight) {
475
483
  // prepare tag name to wrap highlighted text
476
484
  const tagName = typeof param.$highlight == 'string' ? param.$highlight : 'em';
@@ -478,7 +486,7 @@ class Elastic6QueryService {
478
486
  // e.g. 'COVID-19' => /C *O *V *I *D *- *1 *9/i
479
487
  const regexp = new RegExp([...query.replace(/\s/g, '')].join(' *'), 'i');
480
488
  // try to match regular expression with items found
481
- list.map((item) => {
489
+ list = result.list.map((item) => {
482
490
  const target = `${item[field] || ''}`;
483
491
  const match = target.match(regexp);
484
492
  if (match) {
@@ -490,9 +498,11 @@ class Elastic6QueryService {
490
498
  else {
491
499
  item._highlight = target;
492
500
  }
501
+ return item;
493
502
  });
494
503
  }
495
- return { list, total };
504
+ //! finally, override list.
505
+ return Object.assign(Object.assign({}, result), { list });
496
506
  });
497
507
  }
498
508
  }
@@ -1 +1 @@
1
- {"version":3,"file":"elastic6-query-service.js","sourceRoot":"","sources":["../../src/cores/elastic6-query-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elastic6-query-service.js","sourceRoot":"","sources":["../../src/cores/elastic6-query-service.ts"],"names":[],"mappings":"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"}