indexing-utils.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { Client } from '@elastic/elasticsearch';
  2. import { ID, Logger } from '@vendure/core';
  3. import { loggerCtx, PRODUCT_INDEX_NAME, VARIANT_INDEX_NAME } from './constants';
  4. export async function createIndices(client: Client, prefix: string) {
  5. try {
  6. const index = prefix + VARIANT_INDEX_NAME;
  7. await client.indices.create({ index });
  8. Logger.verbose(`Created index "${index}"`, loggerCtx);
  9. } catch (e) {
  10. Logger.error(JSON.stringify(e, null, 2), loggerCtx);
  11. }
  12. try {
  13. const index = prefix + PRODUCT_INDEX_NAME;
  14. await client.indices.create({ index });
  15. Logger.verbose(`Created index "${index}"`, loggerCtx);
  16. } catch (e) {
  17. Logger.error(JSON.stringify(e, null, 2), loggerCtx);
  18. }
  19. }
  20. export async function deleteIndices(client: Client, prefix: string) {
  21. try {
  22. const index = prefix + VARIANT_INDEX_NAME;
  23. await client.indices.delete({ index });
  24. Logger.verbose(`Deleted index "${index}"`, loggerCtx);
  25. } catch (e) {
  26. Logger.error(e, loggerCtx);
  27. }
  28. try {
  29. const index = prefix + PRODUCT_INDEX_NAME;
  30. await client.indices.delete({ index });
  31. Logger.verbose(`Deleted index "${index}"`, loggerCtx);
  32. } catch (e) {
  33. Logger.error(e, loggerCtx);
  34. }
  35. }
  36. export async function deleteByChannel(client: Client, prefix: string, channelId: ID) {
  37. try {
  38. const index = prefix + VARIANT_INDEX_NAME;
  39. await client.deleteByQuery({
  40. index,
  41. body: {
  42. query: {
  43. match: { channelId },
  44. },
  45. },
  46. });
  47. Logger.verbose(`Deleted index "${index} for channel "${channelId}"`, loggerCtx);
  48. } catch (e) {
  49. Logger.error(e, loggerCtx);
  50. }
  51. try {
  52. const index = prefix + PRODUCT_INDEX_NAME;
  53. await client.deleteByQuery({
  54. index,
  55. body: {
  56. query: {
  57. match: { channelId },
  58. },
  59. },
  60. });
  61. Logger.verbose(`Deleted index "${index}" for channel "${channelId}"`, loggerCtx);
  62. } catch (e) {
  63. Logger.error(e, loggerCtx);
  64. }
  65. }