bizmatch-project/crawler/perftest.ts

68 lines
2.3 KiB
TypeScript

import {createLogger,transports, format} from 'winston';
import { createClient } from 'redis';
import { Repository, Schema, SchemaDefinition } from 'redis-om';
const baseListingSchemaDef : SchemaDefinition = {
id: { type: 'string' },
userId: { type: 'string' },
listingsCategory: { type: 'string' },
title: { type: 'string' },
description: { type: 'string' },
country: { type: 'string' },
state:{ type: 'string' },
city:{ type: 'string' },
zipCode: { type: 'number' },
type: { type: 'string' },
price: { type: 'number' },
favoritesForUser:{ type: 'string[]' },
hideImage:{ type: 'boolean' },
draft:{ type: 'boolean' },
created:{ type: 'date' },
updated:{ type: 'date' }
}
const businessListingSchemaDef : SchemaDefinition = {
...baseListingSchemaDef,
salesRevenue: { type: 'number' },
cashFlow: { type: 'number' },
employees: { type: 'number' },
established: { type: 'number' },
internalListingNumber: { type: 'number' },
realEstateIncluded:{ type: 'boolean' },
leasedLocation:{ type: 'boolean' },
franchiseResale:{ type: 'boolean' },
supportAndTraining: { type: 'string' },
reasonForSale: { type: 'string' },
brokerLicencing: { type: 'string' },
internals: { type: 'string' },
}
const businessListingSchema = new Schema('business',businessListingSchemaDef, {
dataStructure: 'JSON'
})
const logger = createLogger({
transports: [
new transports.Console(),
],
format: format.combine(
format.colorize(),
format.timestamp(),
format.printf(({ timestamp, level, message, service }) => {
return `[${timestamp}] ${service} ${level}: ${message}`;
})
),
});
const redis = await createClient()
.on('error', err => console.log('Redis Client Error', err))
.connect();
const businessListingRepository = new Repository(businessListingSchema, redis);
(async () => {
logger.info(`start findBusinessListings:`);
const result = await redis.ft.search('business:index','*',{LIMIT:{from:0,size:50}});
//result.documents.forEach(d=>console.log(d));
logger.info(`end findBusinessListings:`);
logger.info(`start businessListingRepository:`);
await businessListingRepository.search().return.all()
logger.info(`end businessListingRepository:`);
redis.disconnect();
})();