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