summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx')
-rw-r--r--web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx39
1 files changed, 39 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx b/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx
new file mode 100644
index 00000000..f9b86751
--- /dev/null
+++ b/web/server/h2o/libh2o/misc/oktavia/tool/search_simple.jsx
@@ -0,0 +1,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";
+ }
+ }
+ }
+}