import 'dart:io'; import 'package:jadb/_data_ingestion/open_local_db.dart'; import 'package:jadb/cli/args.dart'; import 'package:jadb/search.dart'; import 'package:args/command_runner.dart'; class QueryWord extends Command { final name = "query-word"; final description = "Query the database for word data"; QueryWord() { addLibsqliteArg(argParser); addJadbArg(argParser); } Future run() async { if (argResults!.option('libsqlite') == null || argResults!.option('jadb') == null) { print(argParser.usage); exit(64); } final db = await openLocalDb( jadbPath: argResults!.option('jadb')!, libsqlitePath: argResults!.option('libsqlite')!, ); final String searchWord = 'かな'; final time = Stopwatch()..start(); final count = await JaDBConnection(db).searchWordCount(searchWord); time.stop(); final time2 = Stopwatch()..start(); final result = await JaDBConnection(db).searchWord(searchWord); time2.stop(); if (result == null) { print("Invalid search"); } else if (result.isEmpty) { print("No matches"); } else { for (final e in result) { print(e.toString()); print(""); } } print("Total count: ${count}"); print("Count query took ${time.elapsedMilliseconds}ms"); print("Query took ${time2.elapsedMilliseconds}ms"); } }