|
741 | 741 | return literalSearch === true ? false : lev_distance;
|
742 | 742 | }
|
743 | 743 |
|
744 |
| - function checkPath(startsWith, lastElem, ty) { |
745 |
| - if (startsWith.length === 0) { |
| 744 | + function checkPath(contains, lastElem, ty) { |
| 745 | + if (contains.length === 0) { |
746 | 746 | return 0;
|
747 | 747 | }
|
748 | 748 | var ret_lev = MAX_LEV_DISTANCE + 1;
|
|
752 | 752 | path.push(ty.parent.name.toLowerCase());
|
753 | 753 | }
|
754 | 754 |
|
755 |
| - if (startsWith.length > path.length) { |
| 755 | + if (contains.length > path.length) { |
756 | 756 | return MAX_LEV_DISTANCE + 1;
|
757 | 757 | }
|
758 | 758 | for (var i = 0; i < path.length; ++i) {
|
759 |
| - if (i + startsWith.length > path.length) { |
| 759 | + if (i + contains.length > path.length) { |
760 | 760 | break;
|
761 | 761 | }
|
762 | 762 | var lev_total = 0;
|
763 | 763 | var aborted = false;
|
764 |
| - for (var x = 0; x < startsWith.length; ++x) { |
765 |
| - var lev = levenshtein(path[i + x], startsWith[x]); |
| 764 | + for (var x = 0; x < contains.length; ++x) { |
| 765 | + var lev = levenshtein(path[i + x], contains[x]); |
766 | 766 | if (lev > MAX_LEV_DISTANCE) {
|
767 | 767 | aborted = true;
|
768 | 768 | break;
|
769 | 769 | }
|
770 | 770 | lev_total += lev;
|
771 | 771 | }
|
772 | 772 | if (aborted === false) {
|
773 |
| - ret_lev = Math.min(ret_lev, Math.round(lev_total / startsWith.length)); |
| 773 | + ret_lev = Math.min(ret_lev, Math.round(lev_total / contains.length)); |
774 | 774 | }
|
775 | 775 | }
|
776 | 776 | return ret_lev;
|
|
934 | 934 | }
|
935 | 935 | }
|
936 | 936 | val = paths[paths.length - 1];
|
937 |
| - var startsWith = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
| 937 | + var contains = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
938 | 938 |
|
939 | 939 | for (j = 0; j < nSearchWords; ++j) {
|
940 | 940 | var lev_distance;
|
|
944 | 944 | }
|
945 | 945 | var lev_add = 0;
|
946 | 946 | if (paths.length > 1) {
|
947 |
| - var lev = checkPath(startsWith, paths[paths.length - 1], ty); |
| 947 | + var lev = checkPath(contains, paths[paths.length - 1], ty); |
948 | 948 | if (lev > MAX_LEV_DISTANCE) {
|
949 | 949 | continue;
|
950 | 950 | } else if (lev > 0) {
|
|
987 | 987 | }
|
988 | 988 |
|
989 | 989 | lev += lev_add;
|
990 |
| - if (lev > 0 && val.length > 3 && searchWords[j].startsWith(val)) { |
| 990 | + if (lev > 0 && val.length > 3 && searchWords[j].indexOf(val) > -1) { |
991 | 991 | if (val.length < 6) {
|
992 | 992 | lev -= 1;
|
993 | 993 | } else {
|
|
0 commit comments