此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3spring-doc.cn

搜索算法

SearchMatch是将文本模式匹配的界面。火柴 results 位于 return value 中。比赛结果 包含有关对战位置和对战总分的信息。SearchMatchResultspring-doc.cn

实现

FuzzyMatchV2搜索spring-doc.cn

fzf FuzzyMatchV2Search 算法的端口。进行快速模糊搜索,效果很好 快速找到路径。spring-doc.cn

ExactMatchNaive (精确匹配幼稚)spring-doc.cn

fzf ExactMatchNaive 算法的端口。简单精确匹配效果更准确 如果您知道要搜索什么。spring-doc.cn

搜索匹配

算法和默认语法隐藏在包保护的类中 因为我们不想完全打开这些,直到我们知道 API 可以正常使用 以获得更长的支持。您需要通过其 内置构建器。SearchMatchspring-doc.cn

SearchMatch searchMatch = SearchMatch.builder()
	.caseSensitive(false)
	.normalize(false)
	.forward(true)
	.build();

可以配置区分大小写,搜索方向 发生,或者是否应该在搜索发生之前对文本进行规范化。正常化 当不同的语言对同一类型有轻微的变体时,很方便 字符。spring-doc.cn

根据 中显示的搜索语法选择搜索算法 下表。spring-doc.cn

表 1.搜索语法
令 牌 比赛类型 描述

hellspring-doc.cn

模糊匹配spring-doc.cn

匹配的项hellospring-doc.cn

'stuffspring-doc.cn

精确匹配spring-doc.cn

包含stuffspring-doc.cn

例子

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