|
744 | 744 | return literalSearch === true ? false : lev_distance;
|
745 | 745 | }
|
746 | 746 |
|
747 |
| - function checkPath(startsWith, lastElem, ty) { |
748 |
| - if (startsWith.length === 0) { |
| 747 | + function checkPath(contains, lastElem, ty) { |
| 748 | + if (contains.length === 0) { |
749 | 749 | return 0;
|
750 | 750 | }
|
751 | 751 | var ret_lev = MAX_LEV_DISTANCE + 1;
|
|
755 | 755 | path.push(ty.parent.name.toLowerCase());
|
756 | 756 | }
|
757 | 757 |
|
758 |
| - if (startsWith.length > path.length) { |
| 758 | + if (contains.length > path.length) { |
759 | 759 | return MAX_LEV_DISTANCE + 1;
|
760 | 760 | }
|
761 | 761 | for (var i = 0; i < path.length; ++i) {
|
762 |
| - if (i + startsWith.length > path.length) { |
| 762 | + if (i + contains.length > path.length) { |
763 | 763 | break;
|
764 | 764 | }
|
765 | 765 | var lev_total = 0;
|
766 | 766 | var aborted = false;
|
767 |
| - for (var x = 0; x < startsWith.length; ++x) { |
768 |
| - var lev = levenshtein(path[i + x], startsWith[x]); |
| 767 | + for (var x = 0; x < contains.length; ++x) { |
| 768 | + var lev = levenshtein(path[i + x], contains[x]); |
769 | 769 | if (lev > MAX_LEV_DISTANCE) {
|
770 | 770 | aborted = true;
|
771 | 771 | break;
|
772 | 772 | }
|
773 | 773 | lev_total += lev;
|
774 | 774 | }
|
775 | 775 | if (aborted === false) {
|
776 |
| - ret_lev = Math.min(ret_lev, Math.round(lev_total / startsWith.length)); |
| 776 | + ret_lev = Math.min(ret_lev, Math.round(lev_total / contains.length)); |
777 | 777 | }
|
778 | 778 | }
|
779 | 779 | return ret_lev;
|
|
937 | 937 | }
|
938 | 938 | }
|
939 | 939 | val = paths[paths.length - 1];
|
940 |
| - var startsWith = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
| 940 | + var contains = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
941 | 941 |
|
942 | 942 | for (j = 0; j < nSearchWords; ++j) {
|
943 | 943 | var lev_distance;
|
|
947 | 947 | }
|
948 | 948 | var lev_add = 0;
|
949 | 949 | if (paths.length > 1) {
|
950 |
| - var lev = checkPath(startsWith, paths[paths.length - 1], ty); |
| 950 | + var lev = checkPath(contains, paths[paths.length - 1], ty); |
951 | 951 | if (lev > MAX_LEV_DISTANCE) {
|
952 | 952 | continue;
|
953 | 953 | } else if (lev > 0) {
|
|
990 | 990 | }
|
991 | 991 |
|
992 | 992 | lev += lev_add;
|
993 |
| - if (lev > 0 && val.length > 3 && searchWords[j].startsWith(val)) { |
| 993 | + if (lev > 0 && val.length > 3 && searchWords[j].indexOf(val) > -1) { |
994 | 994 | if (val.length < 6) {
|
995 | 995 | lev -= 1;
|
996 | 996 | } else {
|
|
0 commit comments