搜索算法

搜索匹配是一个将文本图案匹配的接口。 火柴 结果以返回值表示搜索匹配结果. 比赛结果包含比赛排名和比赛总得分的信息。spring-doc.cadn.net.cn

实现

模糊匹配V2搜索spring-doc.cadn.net.cn

fzf FuzzyMatchV2Search 算法的移植。能快速进行模糊搜索,效果不错快速找到路径。spring-doc.cadn.net.cn

完全匹配天真spring-doc.cadn.net.cn

FZF的移植ExactMatchNaive算法。简单精确匹配更准确。如果你知道该搜索什么。spring-doc.cadn.net.cn

搜索匹配

算法和默认语法隐藏在包保护类中因为我们不想在确定 API 准备好之前完全开放这些类以获得更长时间的支持。你需要构建搜索匹配通过其内置建造者。spring-doc.cadn.net.cn

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

可以配置大小写敏感性,比如搜索方向发生,或者文本是否应该在搜索前进行规范化。 正常化 当不同语言对同一类型存在轻微差异时,这很方便。这些字符。spring-doc.cadn.net.cn

搜索算法的选择基于搜索语法,如下表所示。下表所示。spring-doc.cadn.net.cn

表1。搜索语法
Tokens 比赛类型 描述

地狱spring-doc.cadn.net.cn

模糊匹配spring-doc.cadn.net.cn

匹配的物品你好spring-doc.cadn.net.cn

'东西spring-doc.cadn.net.cn

完全匹配spring-doc.cadn.net.cn

包括的项目东西spring-doc.cadn.net.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