blog-post

我们是如何为 GitHub 搜索演示添加自动补全功能的

介绍

你有没有注意到像 Google 这样的搜索引擎在你输入时会建议文本?这就是自动补全的作用——一种通过实时提供建议帮助用户更快找到所需内容的功能。

在本文中,我们将展示如何使用 Manticore Search 在我们的 GitHub 问题搜索演示中实现自动补全。无论你是构建类似功能,还是对这个过程感到好奇,这份指南将带你了解基础知识。

image

你需要准备什么

基本实现

虽然自动补全功能需要客户端 JavaScript 来实现用户界面(这里我们不进行介绍),但实现后台组件则非常简单。只需创建一个与 Manticore Search 通信的端点,使用官方的 PHP SDK 来检索和返回建议。

$client = new Client();
$result = $client->autocomplete([
    'body' => [
        'table' => 'your_table',
        'query' => 'user_input',
    ],
]);

就这样!这个端点接收用户输入,查询 Manticore Search,并返回建议。将其与前端的 JavaScript 配合使用,实时显示结果,这样你就拥有了流畅的自动补全体验。

这里 查看实际演示。

高级特性

虽然自动补全功能开箱即用,但你可以通过模糊匹配和键盘布局支持等功能来增强它。以下是使用 Manticore Search 的 PHP 客户端实现这些功能的方法。

添加模糊匹配

用户会犯拼写错误——这很常见。通过模糊匹配,即使查询没有完全正确地输入,您也可以返回相关建议。以下是如何启用它:

$result = $client->autocomplete([
    'body' => [
        'table' => 'your_table',
        'query' => 'user_input',
        'options' => [
            'fuzziness' => 1
        ],
    ],
]);

通过键盘布局实现多语言支持

如果你的应用程序为不同语言的用户提供服务,键盘布局支持能够带来很大不同。以下是添加对美式英语、乌克兰语和俄语布局支持的示例:

$result = $client->autocomplete([
    'body' => [
        'table' => 'your_table',
        'query' => 'user_input',
        'options' => [
            'fuzziness' => 1,
            'layouts' => ['us', 'ru', 'ua']
        ],
    ],
]);

这确保用户无论使用什么键盘布局,都能获得准确的建议。

我们是如何做到的:GitHub 问题搜索演示

在我们的 GitHub 问题搜索演示中,我们启用了跨问题和评论的搜索功能。我们实现了一个单一的端点,该端点向 Manticore Search 查询两次,并将结果合并为统一的响应。有关实施细节,请查看 源代码

前端实现使用原生 JavaScript 和防抖事件监听器,以实现高效的查询处理。查看完整的 实现

结论

使用 Manticore Search 的 PHP 客户端实现自动补全既简单又灵活。模糊匹配和键盘布局支持的结合使其在实际应用中特别有效。

要查看实际示例,请探索我们的 GitHub 问题搜索演示 ,我们在生产环境中实现了这些功能。

安装Manticore Search

安装Manticore Search