我以前从未使用过搜索引擎。我可以使用 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 仓库的问题中。 简短回答: 托管 Meilisearch 实例的推荐要求将取决于许多因素,例如文档数量、文档大小、所需的过滤器/排序数量等等。为了快速估算,请尝试使用一台至少是您数据集磁盘空间十倍的机器。 长回答: 索引文档是一个复杂的过程,因此很难准确估算 Meilisearch 数据库的大小和内存使用情况。在优化您的实例时,有几个方面需要牢记。

内存使用

有两种情况会导致内存使用量(RAM)激增
  1. 添加文档
  2. 更新索引设置(如果索引包含文档)
为了减少内存使用和索引时间,请遵循以下最佳实践:始终在添加文档之前更新索引设置。这可以避免不必要的双重索引。

磁盘使用

以下因素对数据库大小(不分先后顺序)有很大影响
  • 文档数量
  • 文档大小
  • 可搜索字段的数量
  • 可过滤字段的数量
  • 每次更新的大小
  • 数据集中存在的不同单词数量
注意,多语言数据集和包含许多唯一词(如 ID 或 URL)的数据集可能会降低搜索速度并大大增加数据库大小。如果您有 ID 或 URL 字段,请将其设置为不可搜索,除非它们作为搜索条件有用。

搜索速度

因为 Meilisearch 使用内存映射,所以搜索速度取决于 RAM 和数据库大小的比率。换句话说
  • 大数据库 + 小内存 => 慢速搜索
  • 小数据库 + 大内存 => 极速搜索
Meilisearch 还使用磁盘空间作为虚拟内存。此磁盘空间不对应于数据库大小;相反,它通过允许引擎超越物理 RAM 的限制来提供速度和灵活性。 目前,CPU 核心数量对索引或搜索速度没有直接影响。然而,您提供给引擎的核心越多,它能够同时处理的搜索查询就越多

加速 Meilisearch

Meilisearch 的设计宗旨是快速(响应时间≤50毫秒),因此通常无需加速。但是,如果您发现您的 Meilisearch 实例查询缓慢,有两种主要方法可以提高搜索性能
  1. 增加内存(或虚拟内存)
  2. 减少数据库大小
一般来说,我们推荐前者。但是,如果您由于任何原因需要减小数据库大小,请记住
  • 更多相关性规则 => 更大的数据库
    • 仅邻近排序规则就可能占数据库大小的近 80%
  • filterableAttributes添加许多属性也会占用大量磁盘空间
  • 多语言数据集成本高昂,因此请拆分您的数据集——每个索引一种语言
  • 停用词对于减少数据库大小至关重要
  • 并非所有属性都需要可搜索。避免索引唯一 ID。

为什么 Meilisearch 向 Segment 发送数据?Meilisearch 会跟踪其用户吗?

Meilisearch 绝不会追踪或识别单个用户。尽管如此,我们确实使用 Segment 收集有关用户趋势、功能使用和错误的匿名数据。 您可以在我们的遥测页面上阅读更多关于我们收集哪些指标、为什么收集以及如何禁用它们的信息。透明度和隐私问题对我们非常重要,因此如果您认为我们在此方面有所欠缺,请提交一个问题或发送电子邮件至我们的专用邮箱:[email protected]
© . This site is unofficial and not affiliated with Meilisearch.