diff options
| author | Geo Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2024-04-11 19:16:31 +0300 |
|---|---|---|
| committer | Geo Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2024-04-11 19:16:31 +0300 |
| commit | 762d85c95690f510bec4dd8c37c05454ae1be4fc (patch) | |
| tree | bb2283602195f299530b862fbe761ddbf4e821ce /benchmark/match-str.js | |
| parent | f6682b3a1d90ae4f0b86edebb28ebb17a811b57a (diff) | |
| download | oseine-762d85c95690f510bec4dd8c37c05454ae1be4fc.tar.gz oseine-762d85c95690f510bec4dd8c37c05454ae1be4fc.tar.bz2 oseine-762d85c95690f510bec4dd8c37c05454ae1be4fc.zip | |
introduce resemblance; compare match implementations; retro-search in progress
Diffstat (limited to 'benchmark/match-str.js')
| -rw-r--r-- | benchmark/match-str.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/benchmark/match-str.js b/benchmark/match-str.js new file mode 100644 index 0000000..7760b4e --- /dev/null +++ b/benchmark/match-str.js @@ -0,0 +1,46 @@ +const products = require('../data/products.json'); +const match = require('../pieces/match-util.js'); +var microtime = require('microtime'); + + +query = 'solokata'; + +function run() { + + var f0 = microtime.nowDouble(); + // for(let i = 0 ; i < 100 ; i++) + let result = matchQuery(query); + var f1 = microtime.nowDouble(); + + return { + t: f1-f0, + q: query, + result: result + } +} + + +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 }
\ No newline at end of file |
