summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx
blob: f9b8675115cb9408e6cb8170e115506a2e2ad04c (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
import "nodejs.jsx";
import "fm_index.jsx";

class _Main
{
    static function usage () : void
    {
        log "Simple FM-Index Search Engine: Oktavia";
        log "";
        log "[usage]";
        log "    search [input db file name] keyword";
    }

    static function main(args : string[]) : void
    {
        if (args.length <2)
        {
            _Main.usage();
        }
        else
        {
            var indexFileName = args.shift();
            log "index file name: ", indexFileName;
            var fm_index = new FMIndex();
            fm_index.load(node.fs.readFileSync(indexFileName, "utf16le"));
            for (var i in args)
            {
                log "[search world]", args[i];
                var results = fm_index.search(args[i]);
                for (var j in results)
                {
                    var result = results[j];
                    log "[", result[0], "]: ", "(", result[1], ")";
                }
                log results.length, " hits";
            }
        }
    }
}