此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3! |
搜索算法
SearchMatch
是将文本与模式匹配的界面。火柴
结果位于返回值中SearchMatchResult
.比赛结果
包含有关对战位置和对战总分的信息。
FZF 的。
实现
FuzzyMatchV2搜索
fzf FuzzyMatchV2Search 算法的端口。进行快速模糊搜索,效果很好 快速找到路径。
ExactMatchNaive (精确匹配幼稚)
fzf ExactMatchNaive 算法的端口。简单精确匹配效果更准确 如果您知道要搜索什么。
搜索匹配
算法和默认语法隐藏在包保护的类中
因为我们不想完全打开这些,直到我们知道 API 可以正常使用
以获得更长的支持。您需要构造SearchMatch
通过其
内置构建器。
SearchMatch searchMatch = SearchMatch.builder()
.caseSensitive(false)
.normalize(false)
.forward(true)
.build();
可以配置区分大小写,搜索方向 发生,或者是否应该在搜索发生之前对文本进行规范化。正常化 当不同的语言对同一类型有轻微的变体时,很方便 字符。
根据 中显示的搜索语法选择搜索算法 下表。
令 牌 | 比赛类型 | 描述 |
---|---|---|
|
模糊匹配 |
匹配的项 |
|
精确匹配 |
包含 |
例子
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