Fix the ranking of search results: object name match should be computed based on lower-case fullname

This commit is contained in:
jiakai 2019-05-29 16:38:44 +08:00 committed by Takeshi KOMIYA
parent 29336e6c45
commit 866f4ff1df

View File

@ -319,12 +319,13 @@ var Search = {
for (var prefix in objects) { for (var prefix in objects) {
for (var name in objects[prefix]) { for (var name in objects[prefix]) {
var fullname = (prefix ? prefix + '.' : '') + name; var fullname = (prefix ? prefix + '.' : '') + name;
if (fullname.toLowerCase().indexOf(object) > -1) { var fullnameLower = fullname.toLowerCase()
if (fullnameLower.indexOf(object) > -1) {
var score = 0; var score = 0;
var parts = fullname.split('.'); var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or // check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part) // "last name" (i.e. last dotted part)
if (fullname == object || parts[parts.length - 1] == object) { if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch; score += Scorer.objNameMatch;
// matches in last name // matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) { } else if (parts[parts.length - 1].indexOf(object) > -1) {