搜索算法
搜索匹配是一个将文本与图案匹配的接口。 火柴 结果以返回值表示搜索匹配结果. 比赛结果包含比赛排名和比赛总得分的信息。
FZF。
实现
模糊匹配V2搜索
fzf FuzzyMatchV2Search 算法的移植。能快速进行模糊搜索,效果不错快速找到路径。
完全匹配天真
FZF的移植ExactMatchNaive算法。简单精确匹配更准确。如果你知道该搜索什么。
搜索匹配
算法和默认语法隐藏在包保护类中因为我们不想在确定 API 准备好之前完全开放这些类以获得更长时间的支持。你需要构建搜索匹配通过其内置建造者。
SearchMatch searchMatch = SearchMatch.builder()
.caseSensitive(false)
.normalize(false)
.forward(true)
.build();
可以配置大小写敏感性,比如搜索方向发生,或者文本是否应该在搜索前进行规范化。 正常化 当不同语言对同一类型存在轻微差异时,这很方便。这些字符。
搜索算法的选择基于搜索语法,如下表所示。下表所示。
| Tokens | 比赛类型 | 描述 |
|---|---|---|
|
模糊匹配 |
匹配的物品 |
|
完全匹配 |
包括的项目 |
例子
SearchMatch searchMatch = SearchMatch.builder()
.caseSensitive(false)
.normalize(false)
.forward(true)
.build();
SearchMatchResult result = searchMatch.match("foo bar baz", "fbb");
result.getStart();
// 0 - start position inclusive
result.getEnd();
// 9 - end position exclusive
result.getPositions();
// 0,4,8 - positions, inclusive
result.getScore();
// 112 - score
result.getAlgorithm();
// FuzzyMatchV2SearchMatchAlgorithm - resolved algo