search: fix fuzzySearch api
Build and test / build (push) Successful in 9m35s

This commit is contained in:
2026-06-09 11:23:39 +09:00
parent fe3ba1a2d3
commit 2332e03131
3 changed files with 26 additions and 5 deletions
+9 -1
View File
@@ -34,12 +34,14 @@ extension JaDBConnection on DatabaseExecutor {
Future<List<WordSearchResult>?> jadbSearchWord(
String word, {
SearchMode searchMode = SearchMode.auto,
fuzzyKana = true,
int page = 0,
int? pageSize,
}) => searchWordWithDbConnection(
this,
word,
searchMode: searchMode,
fuzzyKana: fuzzyKana,
page: page,
pageSize: pageSize,
);
@@ -62,7 +64,13 @@ extension JaDBConnection on DatabaseExecutor {
Future<int?> jadbSearchWordCount(
String word, {
SearchMode searchMode = SearchMode.auto,
}) => searchWordCountWithDbConnection(this, word, searchMode: searchMode);
bool fuzzyKana = true,
}) => searchWordCountWithDbConnection(
this,
word,
searchMode: searchMode,
fuzzyKana: fuzzyKana,
);
/// Given a list of radicals, search which kanji contains all
/// of the radicals, find their other radicals, and return those.
+15 -4
View File
@@ -135,10 +135,15 @@ Future<List<ScoredEntryId>> _queryKanji(
);
}
Future<int> _queryKanjiCount(DatabaseExecutor connection, String word) {
Future<int> _queryKanjiCount(
DatabaseExecutor connection,
String word,
bool fuzzyKana,
) {
final (query, args) = _kanjiReadingTemplate(
JMdictTableNames.kanjiElement,
word,
fuzzyKana: fuzzyKana,
countOnly: true,
);
return connection
@@ -172,10 +177,15 @@ Future<List<ScoredEntryId>> _queryKana(
);
}
Future<int> _queryKanaCount(DatabaseExecutor connection, String word) {
Future<int> _queryKanaCount(
DatabaseExecutor connection,
String word,
bool fuzzyKana,
) {
final (query, args) = _kanjiReadingTemplate(
JMdictTableNames.readingElement,
word,
fuzzyKana: fuzzyKana,
countOnly: true,
);
return connection
@@ -297,6 +307,7 @@ Future<int?> fetchEntryIdCount(
DatabaseExecutor connection,
String word,
SearchMode searchMode,
bool fuzzyKana,
) async {
if (searchMode == SearchMode.auto) {
searchMode = _determineSearchMode(word);
@@ -308,11 +319,11 @@ Future<int?> fetchEntryIdCount(
switch (searchMode) {
case SearchMode.kanji:
entryIdCount = await _queryKanjiCount(connection, word);
entryIdCount = await _queryKanjiCount(connection, word, fuzzyKana);
break;
case SearchMode.kana:
entryIdCount = await _queryKanaCount(connection, word);
entryIdCount = await _queryKanaCount(connection, word, fuzzyKana);
break;
case SearchMode.english:
+2
View File
@@ -84,6 +84,7 @@ Future<int?> searchWordCountWithDbConnection(
DatabaseExecutor connection,
String word, {
SearchMode searchMode = SearchMode.auto,
bool fuzzyKana = true,
}) async {
if (word.isEmpty) {
return null;
@@ -93,6 +94,7 @@ Future<int?> searchWordCountWithDbConnection(
connection,
word,
searchMode,
fuzzyKana,
);
return entryIdCount;