索引最佳实践

    在本指南中,您将找到一些最佳实践,以有效地索引您的数据并加快索引过程。

    定义可搜索属性

    检查您的可搜索属性列表,并确保它仅包含您希望查询词匹配的字段。这可以通过从数据库中删除无关数据来提高相关性和搜索速度。它还将使您的磁盘使用量保持在必要的最低限度。

    默认情况下,所有文档字段都是可搜索的。Meilisearch 需要索引的字段越少,索引过程就越快。

    检查可过滤和可排序属性

    某些文档字段对于过滤排序结果是必要的,但它们不需要是可搜索的。通常,**数字和布尔字段**属于此类别。确保检查您的可搜索属性列表,并删除仅用于过滤或排序的任何字段。

    添加文档之前配置索引

    创建新索引时,首先配置其设置,然后添加您的文档。每当您更新设置(例如排名规则)时,Meilisearch 将触发所有文档的重新索引。这可能是一个耗时的过程,尤其是在您拥有大型数据集时。因此,最好在索引数据之前定义排名规则和其他设置。

    优化文档大小

    较小的文档处理速度更快,因此请确保从文档中删除任何不必要的数据。当文档字段不在可搜索可过滤可排序显示属性列表中时,最好将其从文档中删除。更进一步,可以考虑使用 brdeflategzip 等方法压缩数据。请参阅支持的编码格式参考

    优先使用更大的 HTTP 载荷

    处理单个大型 HTTP 数据负载的速度比处理多个较小的数据负载快。例如,将相同数量的 100,000 个文档分成两批(每批 50,000 个文档)添加,会比分成四批(每批 25,000 个文档)添加更快。默认情况下,Meilisearch 将最大数据负载大小设置为 100MB,但如有必要,您可以更改此值

    警告

    较大的数据负载会消耗更多 RAM。如果实例所需的内存超过机器当前可用的内存,则可能会崩溃。

    保持 Meilisearch 更新

    请确保您的 Meilisearch 实例保持最新状态,以受益于最新的改进。您可以查看GitHub 上所有引擎版本的列表

    注意

    有关索引在后台如何工作的更多信息,请查看这篇关于索引最佳实践的博文

    不要将 Meilisearch 用作您的主数据库

    Meilisearch 针对信息检索进行了优化,并非设计为您的主要数据容器。您添加的文档越多,索引和搜索所需的时间就越长。仅索引您在搜索时想要检索的文档。

    为多种语言创建单独的索引

    如果您拥有多语言数据集,请为每种语言创建单独的索引。

    删除 I/O 操作限制

    确保您的机器中没有 I/O 操作限制。云提供商(如AWS 的 Amazon EBS 服务)施加的限制会严重影响索引性能。

    考虑升级到具有 SSD、更多 RAM 和多线程处理器的机器

    如果您已遵循本指南中的先前提示,但仍遇到索引速度慢的问题,请考虑升级您的机器。

    索引是一个内存密集型且多线程的操作。可用的内存和处理器核心越多,Meilisearch 索引新文档的速度就越快。在尝试提高索引速度时,使用具有更多处理器核心的机器比增加 RAM 更有效。

    由于 Meilisearch 的工作原理,最好避免使用 HDD(硬盘驱动器),因为它们很容易成为性能瓶颈。