Improve SearchScore
This commit is contained in:
@ -191,16 +191,21 @@ namespace Elwig.Helpers {
|
||||
.Select(w => {
|
||||
w = w?.ToLower();
|
||||
var p = w?.ToLower()?.Split(" ");
|
||||
if (w == null || p == null) {
|
||||
if (w == null || p == null)
|
||||
return 0;
|
||||
} else if (searchKeywords.Any(f => w == f)) {
|
||||
return 100;
|
||||
} else if (searchKeywords.Any(f => p.Any(a => a == f))) {
|
||||
return 90;
|
||||
} else if (searchKeywords.Any(f => p.Any(a => a.StartsWith(f)))) {
|
||||
return 50;
|
||||
} else if (searchKeywords.Any(f => f != null && w.Contains(f))) {
|
||||
return 1;
|
||||
|
||||
var t1 = searchKeywords.Where(f => w == f).Select(f => f.Length).OrderDescending().FirstOrDefault(0);
|
||||
var t2 = searchKeywords.Where(f => p.Any(a => a == f)).Select(f => f.Length).OrderDescending().FirstOrDefault(0);
|
||||
var t3 = searchKeywords.Where(f => p.Any(a => a.StartsWith(f))).Select(f => f.Length).OrderDescending().FirstOrDefault(0);
|
||||
var t4 = searchKeywords.Where(f => w.Contains(f)).Select(f => f.Length).OrderDescending().FirstOrDefault(0);
|
||||
if (t1 > 0) {
|
||||
return 4 + t1;
|
||||
} else if (t2 > 0) {
|
||||
return 3 + t2;
|
||||
} else if (t3 > 0) {
|
||||
return 2 + t3;
|
||||
} else if (t4 > 0) {
|
||||
return 1 + t4;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user