|
|
|
@ -41,16 +41,16 @@ class DefaultSearchContentsRepository @Inject constructor(
|
|
|
|
|
override fun searchContents(searchQuery: String): Flow<SearchResult> {
|
|
|
|
|
// Surround the query by asterisks to match the query when it's in the middle of
|
|
|
|
|
// a word
|
|
|
|
|
val newsResourceIds = newsResourceFtsDao.searchAllNewsResources("*${searchQuery}*")
|
|
|
|
|
val topicIds = topicFtsDao.searchAllTopics("*${searchQuery}*")
|
|
|
|
|
val newsResourceIds = newsResourceFtsDao.searchAllNewsResources("*$searchQuery*")
|
|
|
|
|
val topicIds = topicFtsDao.searchAllTopics("*$searchQuery*")
|
|
|
|
|
|
|
|
|
|
return combine(
|
|
|
|
|
newsResourceDao.getNewsResources(filterNewsIds = newsResourceIds.toSet()),
|
|
|
|
|
topicDao.getTopicEntities(topicIds.toSet())
|
|
|
|
|
topicDao.getTopicEntities(topicIds.toSet()),
|
|
|
|
|
) { newsResources, topics ->
|
|
|
|
|
SearchResult(
|
|
|
|
|
topics = topics.map { it.asExternalModel() },
|
|
|
|
|
newsResources = newsResources.map { it.asExternalModel() }
|
|
|
|
|
newsResources = newsResources.map { it.asExternalModel() },
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|