Skip to content
This repository has been archived by the owner on May 22, 2021. It is now read-only.

Commit

Permalink
NameResolver #73: properly implement matchedDataSources and total
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-myltsev committed Nov 19, 2018
1 parent 4ce53d1 commit 0bd9b1a
Showing 1 changed file with 14 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -353,16 +353,11 @@ class NameResolver(request: nr.Request)
for (nameInput <- request.nameInputs) yield {
val reqResp = responsesGrouped(nameInput)

val resultsSorted = {
val results = {
val dataSourceIdsSet = request.dataSourceIds.toSet
val results = reqResp.results.filter { rs =>
reqResp.results.filter { rs =>
dataSourceIdsSet.isEmpty || dataSourceIdsSet.contains(rs.result.dataSource.id)
}
if (request.bestMatchOnly) {
results.nonEmpty ? Seq(results.max(resultScoredOrdering)) | Seq()
} else {
results.sorted(resultScoredOrdering.reverse).slice(dropCount, dropCount + takeCount)
}
}

val preferredResults = {
Expand All @@ -383,21 +378,28 @@ class NameResolver(request: nr.Request)
}

val datasourceBestQuality =
if (resultsSorted.isEmpty) {
if (results.isEmpty) {
t.DataSourceQuality.Unknown
} else {
resultsSorted
results
.maxBy { _.result.dataSource }(util.DataSource.ordering)
.result.dataSource.quality
}

val matchedDataSources = resultsSorted.map { _.result.dataSource.id }.distinct.size
val matchedDataSources = results.map { _.result.dataSource.id }.distinct.size

val resultsBestMatchApplied =
if (request.bestMatchOnly) {
results.nonEmpty ? Seq(results.max(resultScoredOrdering)) | Seq()
} else {
results.sorted(resultScoredOrdering.reverse).slice(dropCount, dropCount + takeCount)
}

nr.Response(
total = resultsSorted.size,
total = resultsBestMatchApplied.size,
suppliedInput = reqResp.request.nameInput.value,
suppliedId = reqResp.request.nameInput.suppliedId,
resultsScored = resultsSorted,
resultsScored = resultsBestMatchApplied,
datasourceBestQuality = datasourceBestQuality,
preferredResultsScored = preferredResults,
matchedDataSources = matchedDataSources
Expand Down

0 comments on commit 0bd9b1a

Please sign in to comment.