Optimize SmartSearch system

This commit is contained in:
NerdNumber9 2019-08-10 20:19:59 -04:00
parent 9cfcacf45e
commit 45fc2f2e0e

View File

@ -19,6 +19,8 @@ class SmartSearchEngine(parentContext: CoroutineContext,
private val db: DatabaseHelper by injectLazy() private val db: DatabaseHelper by injectLazy()
private val normalizedLevenshtein = NormalizedLevenshtein()
suspend fun smartSearch(source: CatalogueSource, title: String): SManga? { suspend fun smartSearch(source: CatalogueSource, title: String): SManga? {
val cleanedTitle = cleanSmartSearchTitle(title) val cleanedTitle = cleanSmartSearchTitle(title)
@ -35,7 +37,7 @@ class SmartSearchEngine(parentContext: CoroutineContext,
searchResults.mangas.map { searchResults.mangas.map {
val cleanedMangaTitle = cleanSmartSearchTitle(it.title) val cleanedMangaTitle = cleanSmartSearchTitle(it.title)
val normalizedDistance = NormalizedLevenshtein().similarity(cleanedTitle, cleanedMangaTitle) val normalizedDistance = normalizedLevenshtein.similarity(cleanedTitle, cleanedMangaTitle)
SmartSearchPresenter.SearchEntry(it, normalizedDistance) SmartSearchPresenter.SearchEntry(it, normalizedDistance)
}.filter { (_, normalizedDistance) -> }.filter { (_, normalizedDistance) ->
normalizedDistance >= MIN_SMART_ELIGIBLE_THRESHOLD normalizedDistance >= MIN_SMART_ELIGIBLE_THRESHOLD
@ -55,7 +57,7 @@ class SmartSearchEngine(parentContext: CoroutineContext,
val searchResults = source.fetchSearchManga(1, searchQuery, FilterList()).toSingle().await(Schedulers.io()) val searchResults = source.fetchSearchManga(1, searchQuery, FilterList()).toSingle().await(Schedulers.io())
searchResults.mangas.map { searchResults.mangas.map {
val normalizedDistance = NormalizedLevenshtein().similarity(title, it.title) val normalizedDistance = normalizedLevenshtein.similarity(title, it.title)
SmartSearchPresenter.SearchEntry(it, normalizedDistance) SmartSearchPresenter.SearchEntry(it, normalizedDistance)
}.filter { (_, normalizedDistance) -> }.filter { (_, normalizedDistance) ->
normalizedDistance >= MIN_NORMAL_ELIGIBLE_THRESHOLD normalizedDistance >= MIN_NORMAL_ELIGIBLE_THRESHOLD