open Utils
open Format
-let index_empty_texts = ref false
+let index_empty_texts = ref true
let sample_factor = ref 64
let disable_text_collection = ref false
let tc_threshold = ref 60000
let time = ref false
let bottom_up = ref false
let no_jump = ref false
+let no_cache = ref false
let verbose = ref false
let text_index_type = ref 0
let do_perf = ref false
let twopass = ref false
+let repeat = ref 1
+let docstats = ref false
+let no_wrap_results = ref false
let set_index_type = function
| "default" -> text_index_type := 0
"-f", Arg.Set_int(sample_factor),
"<n> sample factor [default=64]";
- "-i", Arg.Set(index_empty_texts),
- " index empty texts [default=false]";
+ "-ne", Arg.Clear(index_empty_texts),
+ " don't index empty texts [default=index]";
"-d", Arg.Set(disable_text_collection),
" disable text collection[default=false]";
"-nj", Arg.Set(no_jump), " disable jumping";
+ "-nc", Arg.Set(no_cache), " disable caching";
+
+ "-nw", Arg.Set(no_wrap_results), " do not wrap results in <xml_results/>";
+
"-p", Arg.Set(do_perf), " dump perf counters (Linux only)";
"-index-type", Arg.Symbol ([ "default"; "swcsa"; "rlcsa" ],
- set_index_type),
+ set_index_type),
" choose text index type";
+ "-r", Arg.Set_int(repeat),
+ " repeat query execution n time (benchmarking only, default 1)";
+
+ "-doc-stats", Arg.Set(docstats),
+ " Compute document statistics (performs full traversal)";
+
"-v", Arg.Set(verbose), " verbose mode"; ] @
IFNDEF NTRACE
THEN [
ELSE []
END
+let real_spec =
+ spec @ [
+ "-", Arg.Unit (fun () -> anon_fun "-"), "";
+ ]
+
let parse_cmdline() =
- let _ = Arg.parse spec anon_fun usage_msg
+ let _ =
+ try
+ Arg.parse_argv Sys.argv real_spec anon_fun usage_msg;
+ if (!pos > 3 || !pos < 2) then raise (Arg.Bad "Invalid number of arguments")
+ with
+ Arg.Bad s | Arg.Help s ->
+ eprintf "%s\n" (Arg.usage_string spec usage_msg);
+ exit 1
in
- if (!pos > 3 || !pos < 2)
- then begin Arg.usage spec usage_msg; exit 1 end
+ Logger.set_verbose !verbose