summaryrefslogtreecommitdiff
path: root/benchmark/match-str.js
blob: fa802c154014405a4e09b7f624e3c6f65c779703 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var microtime = require('microtime');

const match = require('../utils/match-util.js');
const memory_usage = require('../utils/mem-usage.js');

const products = require('../data/products.json');

// memory_usage.report();

// test runner
function run(query) {

    var f0 = microtime.nowDouble();
    let result;
    // for(let i = 0 ; i < 20 ; i++)
        result = matchQuery(query);
    var f1 = microtime.nowDouble();

    memory_usage.report();

    return {
        t: f1-f0,
        q: query,
        result: result
    }
}

// sumple search implementation
function matchQuery(q) {
    var result = [];

    for(let i = 0; i < products.length; i++) {
        let found = false;
        let similarity = 0;
        products[i].kb.split(' ').forEach( w => {
            let sim = match.resemblance(q, w, 2);
            if (sim > 0.5) {
                found = true;
                similarity = (sim > similarity) ? sim : similarity;
            }    
        });
        if (found) {
            products[i].similarity = similarity;
            result.push(products[i]);
        } 
    }

    return result
}


module.exports = { run }