引擎
前缀搜索
前缀搜索是 Meilisearch 设计的核心部分,即使用户查询只包含单个字母,也能返回搜索结果。
在 Meilisearch 中,您可以使用单个字母作为查询词进行搜索。这是因为我们遵循**前缀搜索(prefix search)**的设计理念。
前缀搜索是指文档排序时,会将搜索查询与数据集中每个单词的开头部分进行比对。所有包含与查询词匹配的单词的文档都会被加入桶排序(bucket sort),然后再依次应用排序规则(ranking rules)。
换句话说,前缀搜索意味着您不需要完整输入一个单词就能找到包含该单词的文档——只需输入单词的前一两个字母即可。
前缀搜索仅针对搜索查询中的最后一个单词执行——前面的单词需要完整输入才能获得准确结果。
使用前缀(而非完整单词)进行搜索会对搜索时间产生显著影响。查询词越短,数据集中可能的匹配项就越多。
示例
假设数据集中包含以下单词:
film
cinema
movies
show
harry
potter
shine
musical
查询词: s
:
返回结果:
show
shine
但不会返回:
movies
musical
查询词: sho
:
返回结果:
show
Meilisearch 在执行前缀搜索时还能处理拼写错误。您可以在专门的拼写容错页面了解更多相关信息。
我们还会对搜索查询应用分词和连接处理。