diff --git a/workers/grouper/src/index.ts b/workers/grouper/src/index.ts index 47b1b1dc..c5f2aa62 100644 --- a/workers/grouper/src/index.ts +++ b/workers/grouper/src/index.ts @@ -14,7 +14,6 @@ import HawkCatcher from '@hawk.so/nodejs'; import { MS_IN_SEC } from '../../../lib/utils/consts'; import DataFilter from './data-filter'; import RedisHelper from './redisHelper'; -import levenshtein from 'js-levenshtein'; import { computeDelta } from './utils/repetitionDiff'; import TimeMs from '../../../lib/utils/time'; @@ -244,22 +243,24 @@ export default class GrouperWorker extends Worker { */ private async findSimilarEvent(projectId: string, event: EventDataAccepted): Promise { const eventsCountToCompare = 60; - const diffTreshold = 0.35; + // const diffTreshold = 0.35; const lastUniqueEvents = await this.findLastEvents(projectId, eventsCountToCompare); /** - * First try to find by Levenshtein distance + * First try to find similar event by title */ - const similarByLevenshtein = lastUniqueEvents.filter(prevEvent => { - const distance = levenshtein(event.title, prevEvent.payload.title); - const threshold = event.title.length * diffTreshold; + const similarByTitle = lastUniqueEvents.filter(prevEvent => { + // const distance = levenshtein(event.title, prevEvent.payload.title); - return distance < threshold; + // const threshold = event.title.length * diffTreshold; + + // return distance < threshold; + return event.title.toLowerCase() === prevEvent.payload.title.toLowerCase(); }).pop(); - if (similarByLevenshtein) { - return similarByLevenshtein; + if (similarByTitle) { + return similarByTitle; } /** @@ -280,13 +281,14 @@ export default class GrouperWorker extends Worker { { sort: { _id: 1 } } ); }); + this.logger.info(`original event for pattern: ${JSON.stringify(originalEvent)}`); if (originalEvent) { return originalEvent; } } catch (e) { - this.logger.error(`Error while getting original event for pattern ${matchingPattern}`) + this.logger.error(`Error while getting original event for pattern ${matchingPattern}`); } } } diff --git a/workers/grouper/tests/index.test.ts b/workers/grouper/tests/index.test.ts index fcbb9554..56f9fd1b 100644 --- a/workers/grouper/tests/index.test.ts +++ b/workers/grouper/tests/index.test.ts @@ -472,17 +472,17 @@ describe('GrouperWorker', () => { }); describe('Grouping', () => { - test('should group events with partially different titles', async () => { - await worker.handle(generateTask({ title: 'Some error (but not filly identical) example' })); - await worker.handle(generateTask({ title: 'Some error (yes, it is not the identical) example' })); - await worker.handle(generateTask({ title: 'Some error (and it is not identical) example' })); + // test('should group events with partially different titles', async () => { + // await worker.handle(generateTask({ title: 'Some error (but not filly identical) example' })); + // await worker.handle(generateTask({ title: 'Some error (yes, it is not the identical) example' })); + // await worker.handle(generateTask({ title: 'Some error (and it is not identical) example' })); - const originalEvent = await eventsCollection.findOne({}); + // const originalEvent = await eventsCollection.findOne({}); - expect((await repetitionsCollection.find({ - groupHash: originalEvent.groupHash, - }).toArray()).length).toBe(2); - }); + // expect((await repetitionsCollection.find({ + // groupHash: originalEvent.groupHash, + // }).toArray()).length).toBe(2); + // }); describe('Pattern matching', () => { beforeEach(() => { diff --git a/workers/grouper/tests/mocks/randomId.ts b/workers/grouper/tests/mocks/randomId.ts index cefd50df..b1dcf1f5 100644 --- a/workers/grouper/tests/mocks/randomId.ts +++ b/workers/grouper/tests/mocks/randomId.ts @@ -8,5 +8,5 @@ export function generateRandomId(): string { return Math.random().toString(RADIX) .substring(FIRST_RANDOM_START, FIRST_RANDOM_END) + Math.random().toString(RADIX) - .substring(FIRST_RANDOM_START, FIRST_RANDOM_END); + .substring(FIRST_RANDOM_START, FIRST_RANDOM_END); }