常见问题解答

    我以前从未使用过搜索引擎。我还可以使用 Meilisearch 吗?

    当然!使用 Meilisearch 不需要 ElasticSearch 或 Solr 的知识。

    Meilisearch 真的易于使用,因此各种类型的开发人员都可以访问。

    快速浏览一下,了解 Meilisearch 的基础知识!

    我们还提供了许多工具,包括 SDK,以帮助您轻松地将 Meilisearch 集成到您的项目中。我们每天都在添加新的工具!

    此外,如果您需要任何帮助,可以联系我们

    如何知道 Meilisearch 是否完全适合我的用例?

    由于 Meilisearch 是一个开源且易于使用的工具,您可以使用自己的数据尝试一下。请按照此指南快速入门!

    此外,我们发布了一篇Meilisearch 与其他搜索引擎的比较,旨在概述 Meilisearch 的替代方案。

    我正在尝试添加我的文档,但一直收到 400 - Bad Request 响应

    400 - Bad request 响应通常表示您的数据格式不符合预期。您可能有多余的逗号、不匹配的括号、缺少引号等。Meilisearch API 接受 JSON、CSV 和 NDJSON 格式。

    添加或替换文档时,即使只有一个新文档,您也必须将它们放在一个数组中。

    我已上传文档,但在索引中搜索时没有结果

    您的文档上传可能失败。要了解原因,请使用返回的 taskUid 检查文档添加任务的状态。如果任务失败,响应应包含一个 error 对象。

    这是一个失败的任务示例

    {
        "uid": 1,
        "indexUid": "movies",
        "status": "failed",
        "type": "documentAdditionOrUpdate",
        "canceledBy": null,
        "details": { 
                "receivedDocuments": 67493,
                "indexedDocuments": 0
        },
        "error": {
            "message": "Document does not have a `:primaryKey` attribute: `:documentRepresentation`.",
            "code": "internal",
            "type": "missing_document_id",
            "link": "https://docs.meilisearch.com/errors#missing-document-id",
        },
        "duration": "PT1S",
        "enqueuedAt": "2021-08-10T14:29:17.000000Z",
        "startedAt": "2021-08-10T14:29:18.000000Z",
        "finishedAt": "2021-08-10T14:29:19.000000Z"
    }
    

    请检查您的错误消息以获取更多信息。

    终止 Meilisearch 进程是否安全?

    终止 Meilisearch 是安全的,即使在进程中间(例如:添加一批文档)。当您重新启动服务器时,它将从头开始执行任务。更多信息请参阅异步操作指南

    你们是否为 Meilisearch 及其集成工具提供公开路线图?

    是的,由于 Meilisearch 及其集成工具是开源的,我们维护一个 公开路线图,其中包含我们计划进行的常规功能。

    对于更精确的功能和问题,所有内容都详细记录在我们所有GitHub 存储库的 issues 中

    简短的答案

    托管 Meilisearch 实例的推荐要求取决于许多因素,例如文档数量、文档大小、您需要的过滤器/排序数量等等。对于一个快速的起始估计,尝试使用至少具有您的数据集十倍磁盘空间的机器。

    详细的答案

    索引文档是一个复杂的过程,因此难以准确估计 Meilisearch 数据库的大小和内存使用情况。在优化实例时,需要牢记以下几个方面。

    内存使用

    以下两件事可能会导致您的内存使用量 (RAM) 飙升

    1. 添加文档
    2. 更新索引设置(如果索引包含文档)

    为了减少内存使用和索引时间,请遵循此最佳实践:始终在添加文档之前更新索引设置。这可以避免不必要的双重索引。

    磁盘使用

    以下因素对数据库的大小有很大影响(不分先后顺序)

    提示

    请注意大量多语言数据集和包含许多唯一单词(例如 ID 或 URL)的数据集,因为它们会降低搜索速度并大大增加数据库大小。如果您确实有 ID 或 URL 字段,请将它们设置为不可搜索,除非它们可以用作搜索条件。

    搜索速度

    由于 Meilisearch 使用内存映射搜索速度取决于 RAM 和数据库大小之间的比率。换句话说

    Meilisearch 还使用磁盘空间作为虚拟内存。此磁盘空间不对应于数据库大小;而是通过允许引擎超出物理 RAM 的限制来为引擎提供速度和灵活性。

    目前,CPU 核心数量对索引或搜索速度没有直接影响。但是,您为引擎提供的核心越多,它能够同时处理的搜索查询就越多

    加速 Meilisearch

    Meilisearch 的设计目标是快速(≤50 毫秒响应时间),因此很少需要加速。但是,如果您发现您的 Meilisearch 实例查询缓慢,则有两种主要方法可以提高搜索性能

    1. 增加 RAM(或虚拟内存)的数量
    2. 减小数据库的大小

    一般来说,我们建议前者。但是,如果您出于任何原因需要减小数据库的大小,请记住

    为什么 Meilisearch 将数据发送到 Segment?Meilisearch 是否跟踪其用户?

    Meilisearch 绝不会跟踪或识别单个用户。也就是说,我们确实使用 Segment 来收集关于用户趋势、功能使用和错误的匿名数据。

    您可以在我们的遥测页面上了解有关我们收集哪些指标、我们为什么要收集它们以及如何禁用它的更多信息。透明度和隐私问题对我们非常重要,因此如果您认为我们在这一领域有所欠缺,请打开一个 issue或发送电子邮件到我们的专用电子邮件地址:[email protected]