Pred-compile RegExp za ime, priimek, ulica tako, da se prevod pripravi samo enkrat, namesto vsakič sproti. To pospeši delovanje iz 5 na sekundo na 10 na sekundo.

This commit is contained in:
Matjaz
2017-09-06 20:36:22 +02:00
parent 3ff6c33826
commit 3aede01646
3 changed files with 58 additions and 58 deletions

View File

@ -1 +1 @@
b74c72c828e11bcf14ba6fc84421b2ec
4017f71f0d5a1443c011e50b823f5ad0

54
dist/routes/filter.js vendored
View File

@ -15,13 +15,34 @@ var FilterRoute = (function (_super) {
var _this = this;
console.log("[FilterRoute::create] Creating filter route.");
this.client.lrange('imena', 0, -1, function (err, result) {
_this.seznamImen = result;
result.forEach(function (ime) {
FilterRoute.seznamImen.push(new RegExp('\\b' + ime
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c') + '\\b', 'gi'));
});
});
this.client.lrange('priimki', 0, -1, function (err, result) {
_this.seznamPriimkov = result;
result.forEach(function (priimek) {
FilterRoute.seznamPriimkov.push(new RegExp('\\b' + priimek
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c') + '\\b', 'gi'));
});
});
this.client.lrange('ulice', 0, -1, function (err, result) {
_this.seznamUlic = result;
result.forEach(function (ulica) {
FilterRoute.seznamUlic.push(new RegExp('\\b' + ulica
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c') + '\\b', 'gi'));
});
});
this.client.lrange('filtri', 0, -1, function (err, result) {
_this.seznamFiltrov = result;
@ -121,19 +142,12 @@ var FilterRoute = (function (_super) {
}
});
FilterRoute.seznamImen.forEach(function (ime) {
var re = new RegExp('\\b' + ime
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
+ '\\b', 'gi');
if (niz.toLowerCase().replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
.search(re) != -1) {
.search(ime) != -1) {
odgovor.vsebujeIme++;
opNajdeni++;
FilterRoute.client.incr('stats:vsebujeIme', function (err, result) {
@ -144,19 +158,12 @@ var FilterRoute = (function (_super) {
}
});
FilterRoute.seznamPriimkov.forEach(function (priimek) {
var re = new RegExp('\\b' + priimek
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
+ '\\b', 'gi');
if (niz.toLowerCase().replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
.search(re) != -1) {
.search(priimek) != -1) {
odgovor.vsebujePriimek++;
opNajdeni++;
FilterRoute.client.incr('stats:vsebujePriimek', function (err, result) {
@ -167,19 +174,12 @@ var FilterRoute = (function (_super) {
}
});
FilterRoute.seznamUlic.forEach(function (ulica) {
var re = new RegExp('\\b' + ulica
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
+ '\\b', 'gi');
if (niz.toLowerCase().replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
.search(re) != -1) {
.search(ulica) != -1) {
odgovor.vsebujeUlico++;
opNajdeni++;
FilterRoute.client.incr('stats:vsebujeUlico', function (err, result) {

View File

@ -13,9 +13,9 @@ export class FilterRoute extends BaseRoute {
public static client: RedisClient = redis.createClient();
public static seznamImen: string[] = [];
public static seznamPriimkov: string[] = [];
public static seznamUlic: string[] = [];
public static seznamImen: any[] = [];
public static seznamPriimkov: any[] = [];
public static seznamUlic: any[] = [];
public static seznamOblik: string[] = [];
public static seznamFiltrov: string[] = [];
@ -31,15 +31,36 @@ export class FilterRoute extends BaseRoute {
console.log("[FilterRoute::create] Creating filter route.");
this.client.lrange('imena', 0, -1, (err, result) => {
this.seznamImen = result;
result.forEach(function(ime) {
FilterRoute.seznamImen.push(new RegExp('\\b'+ime
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')+'\\b', 'gi'));
})
});
this.client.lrange('priimki', 0, -1, (err, result) => {
this.seznamPriimkov = result;
result.forEach(function(priimek) {
FilterRoute.seznamPriimkov.push(new RegExp('\\b'+priimek
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')+'\\b', 'gi'))
})
});
this.client.lrange('ulice', 0, -1, (err, result) => {
this.seznamUlic = result;
result.forEach(function(ulica) {
FilterRoute.seznamUlic.push(new RegExp('\\b'+ulica
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')+'\\b', 'gi'))
})
});
this.client.lrange('filtri', 0, -1, (err, result) => {
@ -192,19 +213,12 @@ export class FilterRoute extends BaseRoute {
/* preverimo ali niz vsebuje ime */
FilterRoute.seznamImen.forEach(function(ime) {
var re = new RegExp('\\b'+ime
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
+'\\b', 'gi');
if(niz.toLowerCase().replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
.search(re) != -1) {
.search(ime) != -1) {
odgovor.vsebujeIme++;
opNajdeni++;
FilterRoute.client.incr('stats:vsebujeIme', function(err, result) {
@ -216,19 +230,12 @@ export class FilterRoute extends BaseRoute {
});
FilterRoute.seznamPriimkov.forEach(function(priimek) {
var re = new RegExp('\\b'+priimek
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
+'\\b', 'gi');
if(niz.toLowerCase().replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
.search(re) != -1) {
.search(priimek) != -1) {
odgovor.vsebujePriimek++;
opNajdeni++;
FilterRoute.client.incr('stats:vsebujePriimek', function(err, result) {
@ -240,19 +247,12 @@ export class FilterRoute extends BaseRoute {
});
FilterRoute.seznamUlic.forEach(function(ulica) {
var re = new RegExp('\\b'+ulica
.replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
+'\\b', 'gi');
if(niz.toLowerCase().replace(/č/g, 'c')
.replace(/š/g, 's')
.replace(/ž/g, 'z')
.replace(/đ/g, 'd')
.replace(/ć/g, 'c')
.search(re) != -1) {
.search(ulica) != -1) {
odgovor.vsebujeUlico++;
opNajdeni++;
FilterRoute.client.incr('stats:vsebujeUlico', function(err, result) {