Class FuzzyMatcher
Скор — целое, где меньшее значение релевантнее. Лестница совпадений:
точное имя (SCORE_EXACT) → префикс полного имени (SCORE_PREFIX) →
непрерывная подстрока в середине имени (SCORE_SUBSTRING) →
подпоследовательность (SCORE_SUBSEQUENCE + позиция первого совпавшего символа:
более раннее начало совпадения релевантнее). Несовпадение — NO_MATCH.
Метод fuzzyScore(String, String) (только подстрока/подпоследовательность) переиспользуется
как «грязный» fuzzy-хвост поиска по символам воркспейса; score(String, String) добавляет
сверху точное/префиксное совпадение и применяется в автодополнении.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intСовпадения нет.static final intСкор точного совпадения имени с запросом (наиболее релевантно).static final intСкор совпадения полного имени по префиксу запроса.static final intБазовый скор совпадения запроса как подпоследовательности имени; к нему прибавляется позиция первого совпавшего символа (более ранняя позиция — релевантнее).static final intСкор совпадения запроса как непрерывной подстроки имени (но не префикса имени). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintfuzzyScore(String lowerName, String lowerQuery) Скор «не-префиксного» fuzzy-совпадения lowercase-имени с lowercase-запросом: непрерывная подстрока (SCORE_SUBSTRING) либо подпоследовательность (SCORE_SUBSEQUENCE+ позиция первого совпавшего символа).booleanСовпадает ли имя с запросом хотя бы как подпоследовательность (любой уровень лестницы).intСкор совпадения имени с запросом: точное / префиксное / подстрока / подпоследовательность.
-
Field Details
-
NO_MATCH
public static final int NO_MATCHСовпадения нет.- See Also:
-
SCORE_EXACT
public static final int SCORE_EXACTСкор точного совпадения имени с запросом (наиболее релевантно).- See Also:
-
SCORE_PREFIX
public static final int SCORE_PREFIXСкор совпадения полного имени по префиксу запроса.- See Also:
-
SCORE_SUBSTRING
public static final int SCORE_SUBSTRINGСкор совпадения запроса как непрерывной подстроки имени (но не префикса имени).- See Also:
-
SCORE_SUBSEQUENCE
public static final int SCORE_SUBSEQUENCEБазовый скор совпадения запроса как подпоследовательности имени; к нему прибавляется позиция первого совпавшего символа (более ранняя позиция — релевантнее).- See Also:
-
-
Constructor Details
-
FuzzyMatcher
public FuzzyMatcher()
-
-
Method Details
-
score
Скор совпадения имени с запросом: точное / префиксное / подстрока / подпоследовательность.Имя приводится к нижнему регистру внутри метода (
Locale.ROOT); запрос должен быть передан уже в нижнем регистре и непустым.- Parameters:
name- имя-кандидат (в исходном регистре)lowerQuery- запрос в нижнем регистре, непустой- Returns:
- скор
>= SCORE_EXACT(меньше — релевантнее), либоNO_MATCH, если совпадения нет
-
matches
-
fuzzyScore
Скор «не-префиксного» fuzzy-совпадения lowercase-имени с lowercase-запросом: непрерывная подстрока (SCORE_SUBSTRING) либо подпоследовательность (SCORE_SUBSEQUENCE+ позиция первого совпавшего символа).Оба аргумента должны быть уже в нижнем регистре (приведение — забота вызывающего, у которого lowercase-имя может быть предвычислено).
- Parameters:
lowerName- lowercase-имя кандидатаlowerQuery- lowercase-запрос, непустой- Returns:
- скор
>= SCORE_SUBSTRING, либоNO_MATCH, если совпадения нет
-